Skip to content

chore: upgrade effect to 4.0.0-rc.117 - #197

Open
flamboh wants to merge 6 commits into
mainfrom
alchemy/01-effect-rc
Open

flamboh wants to merge 6 commits into
mainfrom
alchemy/01-effect-rc

Conversation

@flamboh

@flamboh flamboh commented Sep 22, 2026

Copy link
Copy Markdown
Owner

Note

🤖 Claude Opus 5.5 on behalf of Oliver

ELI5

This upgrades our Effect library from a beta to the newer release-candidate version. The next PRs need it, because Alchemy, the infrastructure tool we're moving to, requires this version.

Why

Layer 1 of the Alchemy migration stack. Every Alchemy v2 build requires effect >= 4.0.0-rc.115; the preview build we're pinning in layer 2 needs rc.117. We're on 4.0.0-beta.93. Doing the upgrade on its own keeps the infrastructure PRs readable.

Implementation

  • effect ^4.0.0-beta.93^4.0.0-rc.117 (lockfile pins 4.0.0-rc.117). rc.117 has no runtime dependencies of its own, so the lockfile shrinks.
  • .repos/effect now vendors the upstream tag effect@4.0.0-rc.117 from Effect-TS/effect, which is where v4 lives now. The old subtree had been renamed from repos/ to .repos/, so git subtree pull couldn't find it. The old tree is removed in one commit and re-added with git subtree add --squash. HEAD:.repos/effect has the same tree hash as the upstream tag.
  • API changes (only 2 files edited):
    • Schema.TaggedErrorClassSchema.TaggedError in src/features/audio/audioErrors.ts. That one renamed base class caused all 63 type errors across 17 files.
    • onExcessProperty: "preserve" was removed upstream → Schema.StructWithRest(..., [Record(String, Unknown)]) in scripts/share-deployment-bindings.ts. Layer 2 deletes this script.
  • Drops the Graphite stacked-PR guidance from AGENTS.md.

Review

  • No app behavior changes are expected. Smoke test: import a local MP3 and a FLAC, edit tags, and save. Also do one YouTube or SoundCloud URL import against a dev Cobalt.
  • Worth a look:
    • Schema.TaggedError instances now use the tag as name, and toString() reads like a native error (AudioDecodeError: …). Nothing in the repo matches on error names or strings, and all tests pass.
    • decodeWranglerConfig still keeps unknown keys, but the decoded key order changes. Wrangler doesn't care.
  • Verified automatically:
    • vp check (0 errors; 59 warnings, the same count as main), bun run typecheck, vp test (661 tests, same as main) and vp build all pass.
    • Playwright on Chromium passes.
    • One Firefox test (metadata-formats.spec.ts:49, the suggestedFilename extension) fails identically on main.
    • WebKit can't launch on the build host because system libraries are missing. It still needs a run in CI or on a Mac.

Claude Opus 5.5 · Claude Code (T3 Code)

git-subtree-dir: .repos/effect
git-subtree-split: 14a3f140095fdebbff9162944fe7d4ea83e054e6
Rename Schema.TaggedErrorClass to Schema.TaggedError and model the pass-through wrangler keys with StructWithRest now that onExcessProperty "preserve" is gone.
@github-actions

github-actions Bot commented Sep 22, 2026

Copy link
Copy Markdown

React Doctor found no new issues. 🎉

Reviewed by React Doctor for commit c1b4d58.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 23, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
tagium c1b4d58 Commit Preview URL

Branch Preview URL
Sep 23 2026, 04:08 AM

This branch has not been deployed

No deployments
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