Skip to content

fix(deps)!: upgrade to effect 4.0.0-beta.104 - #1124

Open
Mkassabov wants to merge 2 commits into
mainfrom
chore/effect-beta-104
Open

fix(deps)!: upgrade to effect 4.0.0-beta.104#1124
Mkassabov wants to merge 2 commits into
mainfrom
chore/effect-beta-104

Conversation

@Mkassabov

Copy link
Copy Markdown
Contributor

The peer range >=4.0.0-beta.102 || >=4.0.0 admitted effect beta.104, which renamed Schema.TaggedErrorClass to Schema.TaggedError. A fresh install could therefore resolve to a version where the CLI died at import:

TypeError: Schema.TaggedErrorClass is not a function
    at alchemy/src/Auth/AuthProvider.ts:43:39

This migrates to beta.104 and raises the floor so the range can no longer resolve to an incompatible version.

API changes

beta.104 removed four things we used:

-export class AuthError extends Schema.TaggedErrorClass<AuthError>()(
+export class AuthError extends Schema.TaggedError<AuthError>()(

-  Command.withHidden,
+  Command.unlisted,

HttpPlatform gained two required members, so the worker stubs now declare them (matching effect's own web layer, and what workerd's CompressionStream supports):

 const HttpPlatformStub = Layer.succeed(HttpPlatform.HttpPlatform, {
+  platform: "web",
+  compression: HttpPlatform.makeCompressionWeb({
+    algorithms: ["gzip", "deflate"],
+    transform: (algorithm) => HttpPlatform.compressionTransformWeb(algorithm),
+  }),
   fileResponse: () => Effect.die("HttpPlatform.fileResponse not supported"),

And Sse.decode now surfaces SseError, which was escaping the declared error channel:

 Stream.catchTag("Retry", (retry) => Stream.die(retry)),
+Stream.catchTag("SseError", (cause) =>
+  Stream.fail(toAiError(cause, "streamText")),
+),

Also

@effect/sql-mysql2 and @effect/sql-sqlite-do are added to minimumReleaseAgeExcludeseffect and the other @effect/sql-* packages were already listed, so their absence was an oversight.

Submodules are pinned to the merged migrations: distilled alchemy-run/distilled#431 (v1.0.0-rc.3), cloudflare-tools alchemy-run/cloudflare-tools#111.

Breaking

effect >=4.0.0-beta.104 is now the minimum peer. Consumers on beta.102/103 must upgrade in lockstep.

The peer range `>=4.0.0-beta.102 || >=4.0.0` admitted beta.104, which
renamed `Schema.TaggedErrorClass` to `Schema.TaggedError` — so a fresh
install could resolve to a version where the CLI died at import with
`TypeError: Schema.TaggedErrorClass is not a function`.

Migrates the four APIs beta.104 removed:

- `Schema.TaggedErrorClass` -> `Schema.TaggedError`
- `Command.withHidden` -> `Command.unlisted`
- `HttpPlatform` gained required `platform` + `compression` members
- `Sse.decode` now surfaces `SseError`, mapped through `toAiError`

Also adds `@effect/sql-mysql2` and `@effect/sql-sqlite-do` to
`minimumReleaseAgeExcludes`; `effect` and the other `@effect/sql-*`
packages were already listed.

BREAKING CHANGE: effect >=4.0.0-beta.104 is now the minimum peer.
@Mkassabov
Mkassabov force-pushed the chore/effect-beta-104 branch from 1c76c06 to ab635eb Compare August 6, 2026 17:23
@sam-goodwin sam-goodwin changed the title chore(deps)!: upgrade to effect 4.0.0-beta.104 fix(deps)!: upgrade to effect 4.0.0-beta.104 Aug 6, 2026
Pins the submodules to the merged effect beta.104 migrations:

- distilled -> 9fe73ad02 (alchemy-run/distilled#431, v1.0.0-rc.3)
- cloudflare-tools -> 0fb3689 (alchemy-run/cloudflare-tools#111)
@Mkassabov
Mkassabov force-pushed the chore/effect-beta-104 branch from ab635eb to 386f8d9 Compare August 6, 2026 17:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants