# chore\(deps\): upgrade Effect to rc.112 and Alchemy to beta.76 · PR \#10652 · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/pull/10652)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

State: merged

Source repository: pingdotgg/t3code

Source branch: t3code/bump-effect-alchemy

Target branch: main

Head commit: 0e5c95adb56b79ec4343fce0772147ca59aa705a

[Discussion and reviews](https://git.cafe/pingdotgg/t3code/pull/10652)

[Commits](https://git.cafe/pingdotgg/t3code/pull/10652/commits?format=markdown)

[Files changed](https://git.cafe/pingdotgg/t3code/pull/10652/diffs?format=markdown)

## Description

---

Upgrades Effect from `4.0.0-beta.103` to `4.0.0-rc.112` and Alchemy from `2.0.0-beta.65` to `2.0.0-beta.76`. All Effect runtime packages stay on one version; Drizzle ORM and Kit move to Alchemy's required `1.0.0-rc.5-ab785fc`.

Most of the source diff renames `Schema.TaggedErrorClass` to `Schema.TaggedError`. The remaining migrations preserve hidden CLI commands with `Command.unlisted`, default the dev runner's browser flag to false, provide ACP's JSON codec and notification capability, accept omitted JSON-RPC headers, and use Alchemy's Postgres subpath and migration options. The relay keeps its existing `relay_migrations` table. Existing MCP session deletion, RPC diagnostics/heartbeat, and Vite+ test-runner patches are carried forward.

The two PRs above this one contain only the matching upstream reference snapshots. The rebase preserves main's TypeScript `7.0.2` and `@effect/tsgo` `0.41.0` upgrade.

Validation:

- `vp i` completed with both Effect patches applied.
- Scoped typechecks passed for the server, relay, web, desktop, mobile, client runtime, contracts, shared packages, ACP/Codex protocols, SSH, Tailscale, scripts, and lint plugin.
- Focused RPC, MCP, ACP client/agent/cancellation, relay, schema, and CLI tests passed. The server startup/HTTP/WebSocket/CLI/MCP pass covered 213 tests.
- Added a regression test that invokes the dev CLI with `--dry-run` and no `--browser` flag.
- Targeted formatting and lint passed, with existing lint warnings. No visual changes.

- [Personal-stage deployment and verification passed](https://github.com/pingdotgg/t3code/actions/runs/34187873365): database-backed health, OAuth metadata endpoints, TLS, and convergence with all 16 resources unchanged. Authenticated linking, tunnel traffic, and APNs delivery remain untested.

Model: GPT-6. Harness: Codex.


<!-- Macroscope's pull request summary starts here -->
<!-- Macroscope will only edit the content between these invisible markers, and the markers themselves will not be visible in the GitHub rendered markdown. -->
<!-- If you delete either of the start / end markers from your PR's description, Macroscope will append its summary at the bottom of the description. -->
> [!NOTE]
> ### Upgrade Effect to `rc.112` and Alchemy to `beta.76`, migrate `TaggedErrorClass` to `TaggedError`
> - Upgrades Effect from `4.0.0-beta.103` to `4.0.0-rc.112` and Alchemy from `2.0.0-beta.65` to `2.0.0-beta.76` in the workspace catalog and relay package, with retargeted patch files.
> - Migrates every `Schema.TaggedErrorClass` declaration to `Schema.TaggedError` across `apps/`, `packages/`, `infra/`, and `scripts/` without changing tags or fields.
> - Fixes `jsonRpcRequest` to decode an omitted `headers` field as an empty collection, and sets an explicit `false` default on the `devRunnerCli` browser flag.
> - Updates `relay.PlanetscaleDatabase` to pass migration directory and table via the nested `migrations` option, and switches the relay worker Drizzle import to the Alchemy Postgres-specific module.
> - Adds `makeAcpPatchedProtocol` notification support by delegating `parserFactory.codecFor` to both returned protocol variants.
> - Risk: the retargeted `effect@4.0.0-rc.112.patch` changes RPC client ping serialization timing (deferred until execution) and MCP method-not-allowed routing via `isAllowedMcpOrigin`; verify these hunks apply cleanly and RPC/MCP behavior matches expectations.
>
> <!-- Macroscope's review summary starts here -->
>
> <sup><a href="https://app.macroscope.com">Macroscope</a> summarized 0e5c95a.</sup>
> <!-- Macroscope's review summary ends here -->
>
<!-- Macroscope's pull request summary ends here -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai -->
## Summary by CodeRabbit

- **New Features**
  - Added request and connection lifecycle hooks for ACP integrations.
  - Improved ACP notification support and handling of omitted request headers.
  - Added preview recording transfer support, including upload coordination and related error reporting.
  - Dev-runner browser mode now defaults to disabled.

- **Bug Fixes**
  - Improved reliability when handling connection interruptions and repeated ping timeouts.
  - Updated hidden maintenance commands so they remain excluded from CLI listings.

- **Compatibility**
  - Standardized typed error reporting across desktop, mobile, web, server, and relay workflows without changing displayed messages or error details.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->


