Skip to content

fix(site): prevent chat search filter pills from overflowing the dialog#26095

Merged
jaaydenh merged 9 commits into
mainfrom
jaaydenh/fix_agent_search_ui
Jun 8, 2026
Merged

fix(site): prevent chat search filter pills from overflowing the dialog#26095
jaaydenh merged 9 commits into
mainfrom
jaaydenh/fix_agent_search_ui

Conversation

@jaaydenh
Copy link
Copy Markdown
Contributor

@jaaydenh jaaydenh commented Jun 5, 2026

Long filter values (for example diff URLs) were widening the chat search
dialog instead of staying inside the search box, and some passthrough
filters did not round-trip cleanly through the backend query parser.

This fixes the filter pills so long values truncate inside the search box
(with the full value available via a hover tooltip), and normalizes
passthrough filters so values containing spaces or colons are quoted and
re-parse identically.

closes CODAGT-556

@jaaydenh jaaydenh self-assigned this Jun 5, 2026
@linear-code
Copy link
Copy Markdown

linear-code Bot commented Jun 5, 2026

CODAGT-556

@jaaydenh
Copy link
Copy Markdown
Contributor Author

jaaydenh commented Jun 5, 2026

/coder-agents-review
@codex review

@coder-agents-review
Copy link
Copy Markdown
Contributor

coder-agents-review Bot commented Jun 5, 2026

Chat: Review in progress | View chat
Requested: 2026-06-06 04:19 UTC by @jaaydenh
Spend: $41.27 / $100.00

deep-review v0.7.1 | Round 4 | 69f9b0e..0713b36

Last posted: Round 4, 9 findings (4 P3, 4 Nit, 1 Note), APPROVE. Review

Finding inventory

Findings

# Sev Status Location Summary Round Reviewer Posted
CRF-1 P3 Author fixed (1e60da0) ChatSearchDialog.stories.tsx:486 CSS overflow fix has no programmatic verification; unused scaffolding R1 Netero Nit, Bisky P3, Chopper P3, Mafu-san Nit Yes
CRF-2 P3 Author fixed (1e60da0) searchQuery.ts:91 normalizePassthroughChatSearchFilter quotes for colons but not spaces R1 Hisoka P3, Meruem P3, Mafuuu Note Yes
CRF-3 P3 Author fixed (1e60da0) ChatSearchInput.tsx:55 Truncated filter pill has no title attribute for hover tooltip R1 Nami P3 Yes
CRF-4 Nit Author fixed (1e60da0) searchQuery.ts:83 Missing doc comment on normalizePassthroughChatSearchFilter R1 Leorio Yes
CRF-5 P2 Dropped by orchestrator (scope creep on pre-existing code) ChatSearchDialog.tsx:399 Pre-existing comment narrates blur mechanism R1 Gon No
CRF-6 Note Author fixed (1e60da0) searchQuery.ts:126 Raw token push asymmetry for title vs passthrough; intentional but uncommented R1 Chopper Yes
CRF-7 P3 Author fixed (c777d6f) ChatSearchDialog.stories.tsx:482 Missing title attribute assertion on truncated pill R2 Bisky Yes
CRF-8 Nit Author fixed (c777d6f) searchQuery.ts:87 Doc comment restates function output format; one-line minimum draft suffices R2 Gon Yes
CRF-9 Nit Author fixed (c777d6f) searchQuery.ts:124 keyValuePairs holds serialized strings, not key-value pairs R2 Gon Yes
CRF-10 Nit Author fixed (c777d6f) searchQuery.ts:67 rawKey field on getKeyValuePair return lacks inline comment R2 Leorio Yes

Contested and acknowledged

(none)

Round log

Round 1

Panel (Netero + 12 reviewers + 1 wildcard). 3 P3, 1 Nit, 1 Note new. 1 dropped (scope creep). Reviewed against 8883a79..e18953f.

Round 2

Churn guard: PROCEED. All 5 open findings addressed in 1e60da0. Netero: no new findings, all fixes verified. Panel (7 reviewers + Netero). 1 P3, 3 Nit new. Reviewed against 8883a79..1e60da0.

Round 4

Base rebased (new base: 69f9b0e). New content: IconInputAlignment story, h-7 icon centering wrapper. Netero: no findings. Panel (4 reviewers): no findings. APPROVE. Reviewed against 69f9b0e..0713b36.

About deep-review

CRF = Coder Review Finding (P0-P4, Nit, Note)

Reviewer Focus
Bisky tests
Chopper ops/errors
Churn-guard change verification
Ging language modernization
Gon naming
Hisoka edge cases
Killua perf
Kite change integrity
Knov contracts
Knuckle SQL
Kurapika security
Law decomposition
Leorio docs
Luffy product
Mafu-san process
Mafuuu contracts
Melody dispatch/pairing
Meruem structural
Nami frontend
Netero mechanical checks
Pariston premise testing
Pen-botter product gaps
Razor verification
Robin duplication
Ryosuke Go arch
Takumi concurrency
Zoro shape

🤖 Managed by Coder Agents.

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Swish!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Copy Markdown
Contributor

@coder-agents-review coder-agents-review Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good dual fix: the CSS wrapping/truncation chain (min-w-0 at three levels, flex-wrap, truncate) is textbook flex-overflow handling, and auto-quoting colon-containing values in the normalizer closes a real backend parsing hole. The rawKey preservation in getKeyValuePair shows care for the data flow, and the normalizedTokens + return-path fix (line 149: normalizedTokens.join(" ") instead of trimmedInput) closes a subtle bypass where standalone diff_url:https://... queries silently discarded the normalization.

3 P3, 1 Nit, 1 Note.

Process note: the commit subject ("fix: fix search ui filter pills") doubles the verb and names the location instead of the problem. Something like "fix: auto-quote URLs in chat search filters and fix pill overflow" captures both concerns. The PR body ("closes CODAGT-556") leaves reviewers reverse-engineering the problem from the diff.

"Revert every CSS change in ChatSearchInput.tsx and ChatSearchDialog.tsx, and the story still passes. It proves the data flow works. It does not prove the layout fix works." Bisky

🤖 This review was automatically generated with Coder Agents.

Comment thread site/src/pages/AgentsPage/components/ChatsSidebar/dialogs/searchQuery.ts Outdated
…dback

- Quote passthrough filter values that contain spaces so normalization is idempotent.
- Document why passthrough values with colons or spaces must be quoted.
- Note why the title branch keeps the raw token before re-quoting.
- Add a title attribute to the truncated filter pill for a hover tooltip.
- Assert the diff URL pill and search box stay within the dialog in the story.
Copy link
Copy Markdown
Contributor Author

jaaydenh commented Jun 5, 2026

/coder-agents-review

Copy link
Copy Markdown
Contributor

@coder-agents-review coder-agents-review Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All 5 R1 findings verified fixed in 1e60da0. The overflow containment assertion (CRF-1), space-quoting fix (CRF-2), title tooltip (CRF-3), doc comment (CRF-4), and asymmetry comment (CRF-6) are all correct and complete. The new addDefaultURLScheme helper and idempotency test are good additions.

1 P3, 3 Nit new this round.

Comment verbosity pattern: 4 of 5 new comments added in the fix commit restate mechanism visible from the code. Gon provided minimum drafts for each. The strongest examples are the doc comment on normalizePassthroughChatSearchFilter (line 87, first sentence restates output format) and the title-branch comment (line 138, "Keep the raw token here" restates push(token)). Minimum drafts:

  • searchQuery.ts:87: // The backend splits on unquoted whitespace and colons, so values containing either must be quoted.
  • searchQuery.ts:138: // Title tokens are merged and re-quoted later, so normalizing here would be redundant.
  • stories.tsx:499: // Guards the overflow fix (min-w-0/truncate/max-w-full); without it the pill spills outside the dialog.
  • test.ts:39: // Normalization must be idempotent.

Process notes (repeat from R1): the PR title "fix: fix search ui filter pills" doubles the verb and names the location instead of the behavior. Consider fix(site): prevent filter pills from overflowing search dialog. The PR body ("closes CODAGT-556") gives no context without the ticket. Also, the commit subject for the scheme helper says "url schema"; the RFC 3986 term is "scheme."

"One assertion would nail the CRF-3 fix verification." Bisky

🤖 This review was automatically generated with Coder Agents.

Comment thread site/src/pages/AgentsPage/components/ChatsSidebar/dialogs/searchQuery.ts Outdated
Comment thread site/src/pages/AgentsPage/components/ChatsSidebar/dialogs/searchQuery.ts Outdated
- Assert the diff URL pill exposes its full value via the title tooltip.
- Trim doc/test comments to the essential insight, dropping restated mechanics.
- Rename keyValuePairs to passthroughFilters to match its normalized contents.
- Document that rawKey preserves casing while key is lowercased for matching.
@jaaydenh jaaydenh changed the title fix: fix search ui filter pills fix(site): prevent chat search filter pills from overflowing the dialog Jun 5, 2026
Copy link
Copy Markdown
Contributor Author

jaaydenh commented Jun 5, 2026

/coder-agents-review

Copy link
Copy Markdown
Contributor

@coder-agents-review coder-agents-review Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All 10 findings from R1 and R2 verified fixed across commits 1e60da0 and c777d6f. Netero R3 scan clean. PR title and description improved per process feedback.

The final PR is clean: CSS overflow prevention with min-w-0/truncate/max-w-full at three nesting levels, auto-quoting for passthrough values containing colons or spaces (with addDefaultURLScheme for schemeless diff URLs), title tooltip on truncated pills, and test coverage exercising both the layout fix (getBoundingClientRect containment) and the normalization pipeline (idempotency, scheme prepending, mixed queries). 50% test density, proportional to the change.

No open findings.

🤖 This review was automatically generated with Coder Agents.

jaaydenh added 2 commits June 6, 2026 11:58
The input row grew to 28px (text-sm line height 1.5rem plus py-0.5), but the
search and filter icons used a 2px top margin that no longer centered them on
that row, leaving them floating above the vertically centered input text.

Wrap each icon in an h-7 box that matches the input row height and centers the
icon, while keeping the container top-aligned so the icons stay put when filter
pills wrap onto multiple lines. Add a story asserting the icons remain
vertically centered with the input.
Copy link
Copy Markdown
Contributor Author

jaaydenh commented Jun 6, 2026

/coder-agents-review

Copy link
Copy Markdown
Contributor

@coder-agents-review coder-agents-review Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-approve after rebase and new content. The IconInputAlignment story with getBoundingClientRect vertical-centering assertions and the h-7 icon wrapper (replacing the previous mt-0.5 approach) are clean additions. The fixed-height wrapper is a more robust alignment strategy since it doesn't depend on margin values matching the input's line height.

All 10 prior findings remain resolved. No new findings from Netero or the panel (Bisky, Nami, Mafuuu, Kite). 58% test density.

No open findings.

🤖 This review was automatically generated with Coder Agents.

@jaaydenh jaaydenh requested a review from DanielleMaywood June 6, 2026 05:10
Remove comments that restated the adjacent code or test intent and trim the
icon-alignment note. Keep only the comments documenting non-obvious behavior
(the backend parser quoting rule and the h-7 magic number).
Comment thread site/src/pages/AgentsPage/components/ChatsSidebar/dialogs/ChatSearchInput.tsx Outdated
@jaaydenh jaaydenh merged commit 9db70b6 into main Jun 8, 2026
29 checks passed
@jaaydenh jaaydenh deleted the jaaydenh/fix_agent_search_ui branch June 8, 2026 13:53
@github-actions github-actions Bot locked and limited conversation to collaborators Jun 8, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants