fix: pivot hover description in public URL#9247
Merged
Conversation
Include `description` in `mapDimension` and `mapMeasure` within `fromPivotProto` so dimension and measure chips retain their description tooltips when pivot state is deserialized from URL parameters (including public/shared URLs). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The regular explore mode deserializes pivot state through `convertPresetToExploreState.ts`, not just `fromProto.ts`. Add `description` to `mapPivotEntry` for both measures and dimensions so chips in the rows/columns area retain their description tooltips. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
On public URL first load, the metricsView data (with descriptions) loads after the pivot state is deserialized, so descriptions are missing. Fix by building a reactive description lookup from the metricsView in PivotDisplay and enriching the pivot rows/columns before passing them to PivotHeader and PivotSidebar. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…rip consistency Proto-default empty strings caused toEqual mismatches when comparing mutation-created state (no description) vs URL-reconstructed state (description: ""). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
Author
|
flaky e2e |
…enriched state to PivotToolbar Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
AdityaHegde
reviewed
Apr 17, 2026
Description enrichment is handled reactively in PivotDisplay.svelte via the metricsView store. The mappers only need to populate id and type. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
Author
|
Addressed feedback: removed description from the deserialization mappers in fromProto.ts and convertPresetToExploreState.ts. The reactive enrichment in PivotDisplay.svelte is now the single source for chip descriptions — the mappers only populate id and type. |
AdityaHegde
approved these changes
Apr 20, 2026
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.
https://www.loom.com/share/d91d85f0717a42098f424f7631f7eb39
Problem: When pivot state is deserialized from a protobuf (e.g. loading a shared/public URL), the mapDimension and mapMeasure
helpers in fromPivotProto weren't copying the description field onto the PivotChipData objects. So chips lost their tooltip
descriptions.
Fix: Added description: dim?.description and description: mes?.description to the two mapping functions (2 lines).
Problem: The first commit only fixed one deserialization path (fromProto.ts). The regular explore mode uses a different path —
convertPresetToExploreState.ts — which also builds PivotChipData objects via mapPivotEntry. That path had the same missing
description bug.
Fix: Added description: m.description and description: d.description in the measure and dimension branches of
fromPivotUrlParams (2 lines).
Problem: On public URL first load, the metricsView data (which contains the descriptions) loads after the pivot state is
already deserialized. So even with commits 1 and 2, descriptions are still missing because the dimension/measure metadata isn't
available yet at deserialization time.
Fix: In PivotDisplay.svelte, builds a reactive descriptionMap from $validSpecStore (the metricsView). An enrichDescriptions()
function backfills any chip that's missing a description. The enriched pivot state is passed to PivotHeader and PivotSidebar
instead of the raw $dashboardStore.pivot. This ensures descriptions appear as soon as the metricsView loads, regardless of
timing.
TL;DR: All 3 commits fix the same bug — pivot chip description tooltips being lost — but across three different code paths:
proto deserialization, URL state deserialization, and a race condition on initial load.
Checklist: