chore(deps): EffectionX 0.8 release set + published context-api@0.6.0, drop vendor fork#79
Merged
Merged
Conversation
…rop vendor fork
Upgrade the @effectionx/* packages to the coordinated 0.8-era release set,
pinned exact in both package.json and deno.json so Deno and pnpm resolve
identical versions (this also removes the @effectionx/node drift where pnpm
resolved 0.2.3 but Deno 0.2.2):
converge 0.1.4, fetch 0.2.0, fs 0.3.0, middleware 0.1.1, node 0.2.4,
process 0.8.1, scope-eval 0.1.3, stream-helpers 0.8.3, test-adapter 0.7.4,
timebox 0.4.3
Replace the vendored @effectionx/context-api fork (0.5.0-vendored) with the
published 0.6.0, which ships the nested-scope .around() middleware behavior
({ at: "min" } innermost-wins) that the fork was created for. Remove
vendor/context-api from every workspace list, import map, and tsconfig path,
and stop passing vendor/ to oxfmt.
effection stays pinned at 4.1.0-alpha.7: alpha.9 has a scope-teardown
regression (scope destructors run in registration order instead of reverse,
deadlocking @effectionx/process's kill+drain teardown) that is fixed upstream
by thefrontside/effection#1215 but not yet released.
The other alpha.9 blocker — effect.enter() errors becoming uncatchable — is
already fixed on the v4-1-alpha branch (#1179). Once a release ships with
both, bumping the pin is a one-line change.
taras
force-pushed
the
chore/effection-alpha9-effectionx-upgrade
branch
from
July 15, 2026 04:32
f2299be to
5317fe2
Compare
taras
commented
Jul 15, 2026
PR #79: chore(deps): EffectionX 0.8 release set + published context-api@0.6.0, drop vendor fork14 files, +218 / -358 Scope🟡 576 lines changed. PRs under 400 receive more thorough review. 🟡 PR mixes config and source changes. Structural✅ No structural bloat detected. SlopStatic Analysis✅ Oxlint found no issues. CorrectnessNo extraneous code patterns detected. |
taras
commented
Jul 15, 2026
taras
commented
Jul 15, 2026
…down Two compatibility fixes that the dependency alignment requires: - run-document: @effectionx/process@0.8 introduces a Stdio api whose default middleware echoes child-process stdout/stderr to the terminal (0.7 captured silently). Document exec/daemon output is captured via .join() and the journal, so install suppressing Stdio middleware in the document pipeline — otherwise live runs print raw child output that replay runs don't, breaking byte-identical replay (CJ5/CJ6). - durable-streams: move async teardown out of try/finally into yield* ensure() in runDurableChild (Close-event emission) and the demo's test-server resource. Effection's teardown contract requires operation-driving teardown (yield*) to be registered via ensure(); a finally block cannot reliably drive operations during shutdown or cancellation.
taras
force-pushed
the
chore/effection-alpha9-effectionx-upgrade
branch
from
July 15, 2026 04:36
5317fe2 to
ed225c1
Compare
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.
What
Aligns the whole
@effectionx/*dependency set to the coordinated 0.8-era release, pinned exact in bothpackage.jsonanddeno.json:@effectionx/converge^0.1.30.1.4@effectionx/fetch^0.1.20.2.0@effectionx/fs0.2.20.3.0@effectionx/middleware0.1.00.1.1@effectionx/node^0.2.20.2.4@effectionx/process^0.7.30.8.1@effectionx/scope-eval^0.1.20.1.3@effectionx/stream-helpers^0.8.10.8.3@effectionx/test-adapter^0.7.30.7.4@effectionx/timebox^0.4.20.4.3Exact pins eliminate the cross-resolver drift where pnpm resolved
@effectionx/node@0.2.3but Deno resolved0.2.2.De-vendors context-api: the local
vendor/context-apifork (0.5.0-vendored) is deleted and replaced with the published@effectionx/context-api@0.6.0, which ships the nested-scope.around()middleware behavior ({ at: "min" }innermost-wins) the fork existed for. All workspace lists, import maps, tsconfig paths, and oxfmt path args are updated accordingly.Compatibility fixes
run-document:@effectionx/process@0.8introduces aStdioapi whose default middleware echoes child stdio to the terminal (0.7 captured silently). Documents capture exec/daemon output via.join()/the journal, so the pipeline installs suppressingStdiomiddleware — without it, live runs print raw child output that replay runs don't, breaking byte-identical replay.durable-streams: async teardown moved fromtry/finallytoyield* ensure()inrunDurableChild(Close-event emission) and the demo's test-server resource, per effection's teardown contract.Why effection stays at 4.1.0-alpha.7
alpha.9 has a v4 scope-teardown regression — scope destructors run in registration order instead of reverse, which deadlocks
@effectionx/process's kill+drain teardown (any document with adaemonblock hangs at teardown with "Promise resolution is still pending but the event loop has already resolved"). Fixed upstream by thefrontside/effection#1215, not yet released. The other alpha.9 blocker (effect-enter()errors becoming uncatchable) is already fixed onv4-1-alphaby thefrontside/effection#1179. Once a release ships with both, bumping the pin is a one-line follow-up.Verification
All on pristine node_modules, no local patches:
deno test(core, durable-streams, durable-effects)pnpm test:nodepnpm test:bundeno task lint+deno check core/mod.tseffection@4.1.0-alpha.7, single@effectionx/node@0.2.4, zerovendor/context-apirefs