Repository navigation
Rollout: upgrade Effect and Foldkit - #76
Merged
Merged
Conversation
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 the shared runtimes for
effect-latestandfoldkit-latestto the exact targets verified on 2026-10-12. Catalogs, public peer ranges, manifests, scoped overrides, and the lockfile agree; obsolete Effect RC resolutions are gone. This fresh branch starts atorigin/maincommit582ab94, after the previous rollout (#73) merged.Versions
effect,@effect/platform-browser,@effect/platform-node,@effect/platform-node-shared,@effect/sql-d1,@effect/sql-sqlite-do,@effect/vitest4.0.0-rc.1124.0.3foldkit,@foldkit/ui,@foldkit/devtools0.156.00.168.0@foldkit/markdown0.9.00.14.3@foldkit/vite-plugin0.20.00.27.1The unused
@effect/sql-pgand@effect/sql-sqlite-nodedrivers remain absent. All 12 used target packages have exactly one locked version, matching the requested target. Public peers now start at Effect^4.0.3, Foldkit^0.168.0, and@foldkit/ui ^0.168.0. A changeset records minor releases for the 20 affected public packages.Compatibility and migrations
4.0.0exactly; Foldkit and DevTools also require@effect/platform-browser 4.0.0. Version-specificpeerDependencyRules.allowedVersionspermit only4.0.3for the five selected Foldkit releases. The Vite plugin's two direct Node platform pins are overridden only under@foldkit/vite-plugin@0.27.1. Peer checking is not disabled globally. The README documents this local, tested exception and its removal condition; it is not an upstream compatibility guarantee. The clean npm consumer uses corresponding overrides scoped to the exact Foldkit and UI releases it installs.effect/unstable/*paths. Upgrade Alchemy and its frontend adapter together from2.0.0-beta.76to2.0.0-beta.80, which uses the new paths. Pin its SQL companions to4.0.3within their declared ranges. An offline deployment-import regression runs in the existing check and release-check paths; frontend Vite imports and the Alchemy CLI help are also exercised without provisioning resources.@effect/vitest@4.0.3requires Vitest 5. Usevitest@5.0.3and replace the removeddescribe.sequentialhelper with explicit nonconcurrent suites. The Effect adapter is an explicit infrastructure-test development dependency, so its compatibility is exercised.evotomodifyFields, subscription lifts toreadreturningOption, and the renamed persistent/inbound-port entry helpers. Wrap MCP outbound effects in named Foldkit Commands. Add reducer return types where the new message matcher needs an explicit result context.h.Valuefor textarea content, preserve description linkage with the newhasDescriptionflag, and supply the calendar locale's required format data while retaining the existing formatting behavior.Option<Message>and validate unknown detail against the editor Message schema. A browser regression verifies malformed messages are ignored and valid native edits still work. Scene tests now resolve dialog resource mounts and acknowledge their teardown; animation completion messages carry the current transition generation.Attributeperformance patch onto Foldkit0.168.0. Upstream still ships the union that caused excessive type-check complexity. The existing type guard and single-checker UI type check pass; the patch does not change Foldkit runtime JavaScript.effect/unstable/aitoeffect/ai, including the package guide and tests, following the Effect migration guide. Changed files use the repository's required formatting.Verification
pnpm install --frozen-lockfile— passed with Node24.14.1and pnpm10.20.0.pnpm check— passed: all package builds/types, infrastructure import test, 625 tests total, lint, formatting, both demo builds, and generated llms structure/links.node scripts/check-packages.mjs— passed: 21 tarballs, clean npm installation/type check/Vitest/production builds, and native-editor bundle isolation.pnpm test:e2e— 119 passed / 1 failed. The sole failure is the navigation expectation reproduced on untouchedorigin/main; every upgrade-related scenario, including the new editor regression, passes.pnpm test:visual— passed, 53 screenshot/interaction comparisons without updating any baselines.pnpm exec alchemy --help— passed without deployment.Limits and blockers
The untouched
origin/maincheckout at582ab94fails the browser navigation expectation because it omits the already-shipped “Theme builder” link. The baseline rerun reproduced that failure; six other selected baseline scenarios passed. This unrelated expectation is left unchanged for a separate fix.A fresh dependency resolution still warns that Alchemy's transitive
capnp-esTypeScript peer does not accept the repository's existing TypeScript 7 compiler. This mismatch predates the rollout; beta.80'scapnp-es@0.0.16accepts TypeScript 5 or 6. It has not been silenced or overridden. The runtime imports and full repository checks pass, but this does not validate capnp code generation with TypeScript 7.Cloudflare deployment was not performed, so live provisioning remains for the existing post-merge pipeline. Repository settings and unrelated template items are unchanged. Nothing was published or merged.
Final status:
effect-latestandfoldkit-latestimplemented and verified. Frozen installation, the full check, package consumer validation, and all 53 visual tests pass. Browser interactions are 119/120, with the sole failure reproduced on the unchanged default branch and left outside this rollout.Open workspace in Conductor