Closed
Conversation
Rework AttributeFilterBar to render filter chips inline inside the search input (Datadog-style) instead of a separate row below. The in-progress filter builds inside a single chip with an embedded value input. Backspace removes chips, Enter commits filters.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: 55cdf94 The changes in this PR will be included in the next version bump. This PR includes changesets to release 6 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
- Tab key now commits filter value (same as Enter) - Enter/Tab on main input submits text search (no popover open) - Remove 500ms debounce — search query only updates on Enter, Tab, or clear
Tab now acts like Enter throughout the filter flow: selects the highlighted attribute key, picks an operator, and commits values. Tab is always trapped so focus never leaves the search bar.
- Encode filter path/value with encodeURIComponent in URL serialization to prevent corruption when values contain commas or colons - Deduplicate trace summaries across pages when attribute filters are active (traces spanning page boundaries are merged by traceId) - Fix spacing between operator and value in filter pill (use non-breaking space so CSS flex doesn't collapse it) - Replace existing filter on same path+op instead of appending, avoiding impossible AND conditions (e.g. status_code=404 AND status_code=500) - Refactor key handlers to switch statements for readability
e5712e7 to
c369c7c
Compare
Contributor
Author
|
Botched PR with merge conflicts - closing in favour of #1751 |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Summary
Adds a Datadog-inspired unified search bar to the logs page that supports filtering by any log attribute, alongside the existing URN text search.
attribute-filter-types.ts): defines theActiveAttributeFiltermodel with support for=,≠,~(contains),exists, and∄(not exists) operatorsattribute-filter-url.ts): serializes/deserializes active filters to/from theafURL search param so filters survive page reloads and are shareableuse-attribute-logs-query.ts): callstelemetrySearchLogswith attribute filters, groups results by traceId intoToolCallSummaryobjects, and supports infinite scrollingAttributeFilterBar.tsx): Datadog-style tag input where filter chips render inline inside the input. The filter flow (key → operator → value) builds inside a single chip with an embedded value input. Popover only appears for key suggestions and operator selection.Logs.tsx): wires everything together — useslistAttributeKeysfor autocomplete, swaps to the attribute-filter query when filters are active, and syncs filter state with URL paramsUX details
afquery paramScreen.Recording.2026-02-27.at.18.35.49.mov
Closes AGE-1436
Test plan
afparam) and survive page reload🤖 Generated with Claude Code