summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorKit Langton <[email protected]>2026-04-23 12:54:46 -0400
committerGitHub <[email protected]>2026-04-23 12:54:46 -0400
commit8b2f8355b22414a768c4a594d7a7101a4f72b00f (patch)
tree58029cfc9dae0e286f739c4cc6e2c5af51a8e99e
parentaed03078f88af5c28035a28b6edbbf10228a49ed (diff)
downloadopencode-8b2f8355b22414a768c4a594d7a7101a4f72b00f.tar.gz
opencode-8b2f8355b22414a768c4a594d7a7101a4f72b00f.zip
docs(schema): mark sync/index.ts migrated with compat-bridge note (#24024)
-rw-r--r--packages/opencode/specs/effect/schema.md13
1 files changed, 12 insertions, 1 deletions
diff --git a/packages/opencode/specs/effect/schema.md b/packages/opencode/specs/effect/schema.md
index 3f2c3b4c9..0abdd9ed6 100644
--- a/packages/opencode/specs/effect/schema.md
+++ b/packages/opencode/specs/effect/schema.md
@@ -147,6 +147,17 @@ import `z` do so only for local `ZodOverride` bridges or for `z.ZodType`
type annotations — the `export const <Info|Spec>` values are all Effect
Schema at source.
+A file is considered "done" when:
+
+- its exported schema values (`Info`, `Input`, `Event`, `Definition`, etc.)
+ are authored as Effect Schema
+- any remaining zod is either a derived compat bridge (via `zod()` /
+ `zodObject()`), a `z.ZodType` type annotation, or a documented
+ `ZodOverride` escape hatch — never a hand-written parallel source of truth
+
+Files that meet this bar but still carry a compat bridge are checked off
+with an inline note describing the bridge and what unblocks its removal.
+
- [x] skills, formatter, console-state, mcp, lsp, permission (leaves), model-id, command, plugin, provider
- [x] server, layout
- [x] keybinds
@@ -365,7 +376,7 @@ piecewise.
- [ ] `src/snapshot/index.ts`
- [ ] `src/storage/db.ts`
- [ ] `src/storage/storage.ts`
-- [ ] `src/sync/index.ts`
+- [x] `src/sync/index.ts` — public API (`SyncEvent.define`) is Schema-first; still stores derived zod `schema`/`properties` on each `Definition` as a compat bridge for `BusEvent` until `bus/bus-event.ts` migrates
- [ ] `src/util/fn.ts`
- [ ] `src/util/log.ts`
- [ ] `src/util/update-schema.ts`