Repository navigation
Move to stable Effect 4.0.x (0.6.0) - #130
Merged
Merged
Conversation
Effect becomes a peer dependency (>=4.0.3 <4.1) with the dev dependency pinned to 4.0.4, so the adapter, the codec and the application share one Effect copy; the previous hard dependency on 4.0.0-rc.112 made the rc.112 runtime run codec Layers built by the application's 4.0.x copy and fail with "Cannot read properties of undefined (reading 'scheduler')". effect/unstable/http becomes effect/http; the packed browser gates no longer copy the fast-check/msgpackr packages that Effect 4.0.x does not have. Adds CHANGELOG.md and release-workflow guards for the codec pin and the peer range. @misofm/codec is temporarily a git ref to the 0.2.0 pre-release branch (misofm/codec PR #9); the release workflow refuses to publish until it is the published 0.2.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 13, 2026
…notes preflightExpected and preflightSpan check Reflect.ownKeys: Effect 4.0.x strips non-enumerable extras under onExcessProperty "error" where rc.112 rejected them (tests added). The sparse full GET disables TracerPropagationEnabled like the FLAC range lane so b3/traceparent headers cannot force a CORS preflight (test added). Corrects the CHANGELOG (actual crash condition, behaviour changes vs audited-no-change notes), the publish job name, and the codec attribution in NOTICE, adds the numbered spec for issue #131, and points the temporary codec git ref at the rebuilt pre-release branch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replaces the temporary git reference with the registry package; the lockfile resolves the registry tarball with its integrity, and check-package.mjs asserts the exact 0.2.0 dependency. Spec 131 now records that codec 0.2.0 is published. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Summary
Refs #131 (issue + numbered spec
.github/ISSUE_SPECS/131-move-the-web-adapter-to-stable-effect-4-0-x.md).Moves
@misofm/engine-web-adapterfromeffect@4.0.0-rc.112to stable Effect 4.0.x (0.5.13->0.6.0). Not tagged, not published. Depends on the published@misofm/codec@0.2.0(misofm/codec#9, release https://github.com/misofm/codec/releases/tag/v0.2.0).effectmoves from a hard dependency (4.0.0-rc.112) to a peer dependency>=4.0.3 <4.1; dev dependency pinned exactly to4.0.4(the adapter uses no@effect/*package; Effect 4.0.4 has no runtime dependencies). This is the actual fix for the crash: with a hard dependency the adapter's rc.112 runtime ranLayer.build(makeFlacDecoderLayer(bytes))built by the application's 4.0.x codec copy and threwCannot read properties of undefined (reading 'scheduler').effect/unstable/http->effect/http(3 files).tscneeded no other source change; the built.d.tsdiffer from 0.5.13 only in that one import line instems/sparse-response.d.ts.@misofm/codecis the exact published0.2.0;package-lock.jsonresolves the registry tarball with its integrity (sha512-nbhiEKPB…ksUmqGA==) and no git URL remains.scripts/check-package.mjsasserts it, and the release workflow assertsdependencies['@misofm/codec'] == 0.2.0, the peer range, and the same on the registry artifact.CHANGELOG.md): the sparse full GET now disablesHttpClient.TracerPropagationEnabledlike the FLAC range lane (nob3/traceparentheaders, which forced a CORS preflight; the new test fails without it); non-enumerable/symbol extra keys on sparse expectations and spans are rejected again viaReflect.ownKeyspreflight, as in rc.112 (Effect #8423 strips them under 4.0.x; two new tests fail without the fix); a cancelled FLAC range read's nested cause may carry one extraAbortError(cause shapeFail, InterruptvsFail; public error unchanged).fast-check/pure-rand/msgpackr(Effect 4.0.x does not install them; the scripts failed on missing directories).CHANGELOG.md(shipped in the package) with behaviour notes and the migration note;npm-publish.ymlversion0.6.0;check-package.mjsasserts the new dependency shape.Verification (local, Linux, Node 22.23.2)
npm ci --ignore-scriptsfrom the committed lockfile andnpm run check(re-run on the final head against the registry codec) (format, SHA-256 and BLAKE3 Wasm reproducibility with pinned Emscripten 6.0.9 / Rust 1.97.1, typecheck, source policy, decoder asset policy, build, 383 tests, 0 fail, package policy: 248 files): passed. Same suite also pass witheffect@4.0.3installed (peer floor).npm run test:browserandnode scripts/browser-packed.mjs --indexed-sparsepassed;npm run test:browser:opfsChromium part passed.FileSystemFileHandle; identical failure on unchangedorigin/main, so the WebKit lanes rely on the macOS workflow below);test:browser:live(needs fixed port 5173, in use on this machine, and the live stems host); Firefox (no lane in this repo).effect@4.0.4:@misofm/codec@0.1.1+@misofm/engine-web-adapter@0.5.13(nestedeffect@4.0.0-rc.112) ->loadFlacDecoderModulefails withTypeError: Cannot read properties of undefined (reading 'scheduler'). With the registry codec0.2.0+ this branch's packed adapter0.6.0-> succeeds (npm install --strict-peer-depsvalid,npm lsexit 0, singleeffect@4.0.4).effect@4.0.3also valid;effect@4.0.0-rc.115is rejected withERESOLVE.opfs-qualification.ymlruns on PRs (macOS, Chromium + WebKit OPFS, three warm workers); there is no PR workflow fornpm run check, which was run locally as above.Release
Merge, then run Publish @misofm/engine-web-adapter (
workflow_dispatchonmain:mode=publish,expected_sha=<40-char merge SHA>). OIDC trusted publishing, no token fallback; it runsnpm run check, refuses an existing version, publishes, then verifies the registry artifact (including the codec and peer pins).🤖 Generated with Claude Code