fix(vue): flush stream write-deps on first arrival - #867
Merged
Conversation
Server invalidation keys stay settlement-only so list queries are not refetched per chunk. The first write-dep set now invalidates matching queries while the stream is still open (job create → GetActiveJob). Co-authored-by: Enrico Polanski <16064771+enricopolanski@users.noreply.github.com> Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
@effect-app/cli
effect-app
@effect-app/eslint-codegen-model
@effect-app/eslint-shared-config
@effect-app/infra
@effect-app/vue
@effect-app/vue-components
commit: |
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.
Why
Long-running
stream: truecommands (One-Pick Stapeldruck) create a job on the first write, then print for tens of seconds.@effect-app/vuemakeStreamMutation2accumulated write-deps and only invalidated queries when the stream settled.GetActiveJobstayed on its pre-start snapshot (null) for the whole print. Combined with #864 (refetch only mounted queries) the operator saw no in-page job / Continue until park or reload.Scanner: https://github.com/macs-holding/scanner/pull/2236
What
Flush derived write-dep invalidation once when the first write set is visible on a stream value, then again on settlement. Server invalidation keys stay settlement-only — per-chunk key flush is what caused the One-Pick
Liststorm (#1836).How
makeStreamMutation2taps each value, and if write-deps have arrived and have not been flushed yet, runsinvCachewith those writes and no server keys. A later item write (PickItem) waits forensuring. Test: first write invalidatesGetActiveJobwhile the stream is still gated; settlement then invalidatesListas well.Remarks
Changeset: patch
@effect-app/vueopened by enricopolanski in chat thread Discord · Discord · T3
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.