Repository navigation
fix(deps): update Effect to 3.22 and fix the new language-service errors - #399
Merged
Merged
Conversation
GraemeF
force-pushed
the
fix/effect-3-update
branch
from
September 30, 2026 08:13
db4e2b2 to
74697e8
Compare
|
GraemeF
marked this pull request as ready for review
September 30, 2026 11:54
GraemeF
added a commit
that referenced
this pull request
Sep 30, 2026
…n runs (#420) The in-memory store lost an event appended after `subscribe` or `subscribeAll` returned but before the returned stream started running. The Postgres store had the same gap, fixed in #399. The cause was `Stream.fromPubSub`, which subscribes to the PubSub only when the stream runs. Per-stream `subscribe` also took its history snapshot at subscribe time, so an event appended in the gap was in neither the snapshot nor the live feed. A live stream now takes its snapshot and subscribes to the PubSub when it runs, both under the lock that `append` holds while it publishes. The snapshot starts from the position recorded when `subscribe` was called. `EventStore.subscribe` takes no `Scope`, so subscribing eagerly would leave a subscription open for any stream the caller never runs. Doing the work at run time avoids that without changing the public API. The new tests subscribe, append, and only then run the stream. The fork-based tests added to the Postgres store in #399 pass against the old in-memory code, because the forked fiber subscribes before the append publishes.
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.



Takes Renovate's Effect 3 update from #388 and fixes what broke its build.
The newer Effect language service reports failing an Effect with a plain
Erroras a warning, and ourtscruns fail on it. Each such site now fails with a tagged error:Cause.TimeoutException, and "expected a value" checks useCause.NoSuchElementException.ConnectionError.Data.TaggedError.ParseErrordirectly.Public signatures are unchanged. The testing-contracts helpers still declare
Error, and the changeset covers the new tags they fail with.Postgres store fix.
@effect/sql-pg0.53 opens a new connection for its firstLISTEN, where 0.49 reused a pooled one. That exposed a bug in our notification listener, which startedLISTENin the background and returned before it was active. Any event committed in that gap was lost, and the subscription tests failed in CI.listenandlistenAllnow wait until a probe notification sent to their own channel comes back. Every listener drops probe payloads. The probe goes throughpg_notify, because thenotifyin@effect/sql-pg0.53 sends a parameterisedNOTIFY, which Postgres rejects. The two new tests inbridge.integration.test.tsfail against the old listener.This also bumps
@effect/language-serviceto 0.87.3. Once this merges, #388 can be closed.