fix(tags): commit option selections through GraphQL Soup - #5493
Draft
gbirman wants to merge 2 commits into
Draft
Conversation
Contributor
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The tag picker's optimism and invalidation both targeted the normy Soup cache, which the GraphQL transport never populates, so a selection only surfaced after a full reload once enable-graphql-soup was on. Adds updateEntityPropertyOptions to the graph, keeping the add/remove delta semantics so concurrent edits to the same property still compose, and routes the picker through it with a normalized-cache write. A set's first tag has no property record to patch until the server answers, so that case rides the in-flight overlay and a post-commit revalidation of the cached list variants holding the entity.
Rows render the overlay on every pass, and importing it from the mutation module dragged the REST and GraphQL clients — and with them the Soup websocket — into every consumer that only wanted to display a pending tag. Under jsdom that surfaced as unhandled "ws does not work in the browser" rejections from the tag row test.
gbirman
force-pushed
the
spotlight-tag-refresh-lag
branch
from
August 7, 2026 14:46
44dd63c to
710d0be
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.
The tag picker's optimism and invalidation both target the normy Soup cache, which the GraphQL transport never populates — so with
enable-graphql-soupon, a tag applied from a row only appeared after a full page reload. This addsupdateEntityPropertyOptionsto the graph, keeping the add/remove delta semantics so concurrent edits to the same property still compose, and routes the picker through it with a normalized-cache write.A set's first tag has no property record to patch until the server answers (and
propertiesis a link list a bare record write does not extend), so that case rides the in-flight mutation overlay plus a post-commit revalidation of the cached list variants that hold the entity — discovered through id-only membership documents, since a full-item selection misses any variant where some selected field was never written.Verified on a local stack with the flag forced on: first tag in the flat Files view and in the grouped Tasks view both land without a reload, removal is instant under an artificially delayed mutation, and a forbidden write reverts the optimistic chip.