Skip to content

Build against Alchemy beta.85 with the programmatic API, and move effect to 4.1 - #404

Draft
wmadden-electric wants to merge 4 commits into
mainfrom
claude/alchemy-api-evaluation-5f1d17
Draft

wmadden-electric wants to merge 4 commits into
mainfrom
claude/alchemy-api-evaluation-5f1d17

Conversation

@wmadden-electric

@wmadden-electric wmadden-electric commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor
// pnpm-workspace.yaml catalog
"alchemy": "2.0.0-beta.85",
"effect": "4.1.0"

Composer now builds against Alchemy 2.0.0-beta.85. That release adds alchemy/Alchemist, the programmatic API (plan, apply, typed events). The next pull requests use it to run prisma deploy and then prisma dev inside the prisma process, with no generated alchemy.run.ts and no child process. This pull request only moves the dependencies. Alchemy still runs as a child process.

Merge this first, then #405 and #411, which are stacked on it.

What changed

  • alchemy and @alchemy.run/prisma move from beta.84 to beta.85, and @distilled.cloud/prisma to 1.0.0-rc.18. effect and the @effect/platform-* packages move from 4.0.3 to 4.1.0, which beta.85 requires. These, plus @alchemy.run/prisma and @distilled.cloud/prisma, are now pinned once in the pnpm catalog.
  • Alchemy moved its Prisma provider out of alchemy/Prisma into the package @alchemy.run/prisma. Imports changed in about 24 files.
  • alchemy/Test/Core is gone upstream. The small part our provider tests used is now @internal/lowering/scratch-stack.
  • Prisma.CustomDomain now looks up the domain's DNS records before registering it. docs/guides/deploying.md says so, and the custom-domain test stubs DNS.
  • withComposerAdvice rewrites Alchemy's new adoption messages, including the provider's own. A test scans the installed provider source for advice that is not rewritten.
  • @prisma/composer drops @effect/sql-d1, @effect/sql-sqlite-do and @effect/vitest. Alchemy no longer needs them, and @effect/vitest 4.1 would install Vitest into every app.
  • check:npm-effect-resolution also asserts one copy of alchemy, @alchemy.run/prisma and @distilled.cloud/prisma in a plain npm install.
  • check:publish-deps rejects URL, git, file: and link: dependencies, so a preview pin cannot reach a publish.
  • The upgrade-alchemy-effect skill explains how to pin a preview build when a fix is not released yet. ADR-0048 names @alchemy.run/prisma.

Testing

Build, typecheck, lint, package tests, the script checks and the local-dev integration tests pass locally. The e2e deploy workflow runs on this pull request.

Agent: maat-73

🤖 Generated with Claude Code

wmadden-electric and others added 2 commits October 30, 2026 16:33
Every alchemy pin is now https://pkg.alchemy.run/alchemy/972f294ae0c7982a8ebcb551fadd07d29c9c0fca, and effect with every @effect/* companion is 4.1.0, which that build needs as its peer.

The build is 2.0.0-beta.84 plus later commits. What changed for us:

- The Prisma provider moved out of alchemy into @alchemy.run/prisma, pinned at the same commit. Imports of alchemy/Prisma now use it.
- @distilled.cloud/prisma is pinned to the exact tarball @alchemy.run/prisma depends on, so there is one copy.
- alchemy/Test/Core moved to @alchemy.run/test, which is not published. Provider tests use scratchStack and runScratch from the new @internal/lowering/testing entry, a port of the parts we used.
- Prisma.CustomDomain now waits for the CNAME on real nameservers before it registers a domain; the public URL test stubs node:dns/promises.
- Alchemy has a new --adopt message for replacements; withComposerAdvice rewrites it.

check:npm-effect-resolution now also asserts a single alchemy in the npm tree. The upgrade-alchemy-effect skill explains how to pin a preview build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
…slice 1 review

- check:publish-deps fails on a URL, git or file: dependency in a published package, and says to swap a pkg.alchemy.run preview for a release. It runs only in the publish workflow, so PR CI is unaffected.
- alchemy, @alchemy.run/prisma, @distilled.cloud/prisma, effect and the @effect/platform-* packages are pinned once, in the pnpm catalog.
- check:npm-effect-resolution also asserts one @alchemy.run/prisma and one @distilled.cloud/prisma; its comments describe the current peers.
- @prisma/composer drops @effect/sql-d1, @effect/sql-sqlite-do and @effect/vitest, which alchemy no longer needs.
- @internal/lowering/testing is now @internal/lowering/scratch-stack, and the scratch stack no longer takes a state it ignored.
- withComposerAdvice rewrites the Prisma provider's adoption advice too, and a test scans the provider sources for it.
- The DNS stub keeps the rest of node:dns/promises. ADR-0048 and the deploying guide are updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
@prisma-gizmo

prisma-gizmo Bot commented Oct 30, 2026

Copy link
Copy Markdown

⏸️ Gizmo skipped the automatic review of 3cb6c5e because this pull request is a draft. It will review automatically once the PR is marked ready for review.

  • Check this box to request a one-time review of the current commit.

@coderabbitai

coderabbitai Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

CodeRabbit Verify

  • Run CodeRabbit Verify to test the changes in this pull request.

…aluation-5f1d17

Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>

# Conflicts:
#	docs/design/90-decisions/README.md
#	packages/1-prisma-cloud/0-lowering/local-target/src/compute.ts
#	packages/9-public/composer/package.json
#	pnpm-lock.yaml
#	test/integration/package.json
@pkg-pr-new

pkg-pr-new Bot commented Oct 30, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@prisma/composer@404
npm i https://pkg.pr.new/@prisma/composer-cli@404
npm i https://pkg.pr.new/@prisma/composer-prisma-cloud@404

commit: 2bbc2b9

@alchemy.run/prisma moves to 2.0.0-beta.85 with it, and @distilled.cloud/prisma to 1.0.0-rc.18, the version it depends on. effect stays at 4.1.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: willbot <w.a.madden+machine@gmail.com>
Signed-off-by: Will Madden <madden@prisma.io>
@wmadden-electric wmadden-electric changed the title Build against Alchemy's preview build with the programmatic API, and move effect to 4.1 Build against Alchemy beta.85 with the programmatic API, and move effect to 4.1 Nov 3, 2026
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.

1 participant