Repository navigation
Rollout: upgrade Effect and Foldkit - #62
Merged
Merged
Conversation
Cloudflare Preview DeployedPlayground: https://schematics-playground-pr-62-ohwjxu747h2ybnst.bjacobso.workers.dev Built from commit 2026-10-12T20:13:21.788Z This comment updates automatically with each push. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Upgrade only
effect-latestandfoldkit-latestto the supplied rollout targets, starting fromorigin/mainatfdc00a7after the previous rollouts merged. Migrate the stable Effect APIs and the supporting dependencies needed to keep the existing apps and deployment code working.effect4.0.0-rc.1124.0.3@effect/platform-node,@effect/platform-node-shared4.0.0-rc.1124.0.3@effect/sql-d1,@effect/sql-sqlite-do,@effect/vitest4.0.0-rc.1124.0.3@effect/platform-browser4.0.3, explicitly supplies Foldkit's new browser peerfoldkit,@foldkit/ui0.156.00.168.0@foldkit/vite-plugin0.20.20.27.1vitest4.1.25.0.4, required by@effect/vitest@4.0.3alchemy2.0.0-beta.772.0.0-beta.81, required for stable Effect import pathsCatalogs, manifests, scoped overrides, and the lockfile are aligned. An audit of every selected package resolution in the lockfile confirmed the exact target versions; unused companions were not added. The obsolete global RC overrides are removed.
Migration details:
effect/unstable/*to the stable export paths (effect/http,effect/http-api,effect/rpc,effect/ai,effect/reactivity), including the protocol README example.Config.String,Config.Port, andConfig.Redactedin the Node server and deployment configuration.LanguageModel.Servicetype withLanguageModel.LanguageModelin ingest capabilities/workflow metering.^4.0.0peers/SQL ranges. Update both consuming manifests and the Cloudflare package's public Alchemy peer range to the version tested here. Its SQL adapters are pinned to the tested patch with parent-scoped overrides.Narrow compatibility exceptions:
@foldkit/ui@0.168.0, and the Vite plugin 0.27.1 declare exact Effect4.0.0peers; Foldkit also declares exact platform-browser4.0.0. Version-qualifiedpeerDependencyRules.allowedVersionspermit only the requested4.0.3pairing for these releases.4.0.0as direct dependencies. Overrides apply only to@foldkit/vite-plugin@0.27.1and move those two packages to4.0.3, preventing a second platform/runtime resolution.0.2.0is its current published release and declares^0.156.0Foldkit/UI peers. Version-qualified exceptions permit only0.168.0for this release. Its accessible Button controls are exercised by the existing production-page browser tests.0.1.0beta-peer exception, narrow it to that exact package version, and update the tested Effect version to4.0.3.pnpm install --frozen-lockfile --strict-peer-dependenciespasses. These exceptions record repository test evidence, not broader upstream compatibility guarantees. They are documented in the README.Validation on the repository's pinned Node
25.9.0and pnpm11.1.3:pnpm checkpassed: formatting, agent-doc validation, 270 package tests, types, package/app builds, built docs checks, and the existing local HTTP smoke.Existing browser-suite blockers and limits, left unchanged because they are outside this upgrade:
origin/mainwith the same 8,606-pixel mismatch. No visual baselines or screenshot tolerances were changed.--ignore-snapshotsreturned 29 passed / 1 failed. The hosted-agent case failed before any agent edit because history read an uninitializedrefs/heads/main. The same failure reproduced on untouchedorigin/main; the upgraded case passed on an isolated rerun. This provides successful functional coverage of all 30 cases, but the combined run is still flaky.How to verify the selected template IDs: inspect catalog/override entries and all
effect/listed@effect/*lockfile package resolutions foreffect-latest; inspect the three used Foldkit resolutions forfoldkit-latest; repeat the strict frozen install, full check, and production-page browser command above.GitHub repository settings, other template items, and visual baselines were not changed. No manual deployment, package publication, or merge was performed.
Final status: both dependency target sets implemented and verified; full check and production-page browser coverage pass. Existing visual baseline failures, a baseline hosted-history race, and Vitest's Node 25 engine-range limitation are documented for review.
Open workspace in Conductor