mirror of
https://github.com/coder/coder.git
synced 2026-06-03 04:58:23 +00:00
15ada66e14
Relates to CODAGT-432 Adds three new search filters to the chat list endpoint (`GET /api/experimental/chats/`): - `pr:<number>` - exact PR number match - `repo:<owner/repo>` - substring match against git remote origin or URL - `pr_title:<text>` - case-insensitive PR title substring match Includes SQL filter clauses (EXISTS against `chat_diff_statuses`), parser with validation, handler wiring, unit tests, swagger annotation update, and a new search syntax documentation page. > 🤖 Generated with [Coder Agents](https://coder.com/agents)
2.9 KiB
2.9 KiB
Conversation Search Syntax
The chat list endpoint accepts a q query parameter for filtering
conversations. All filters use key:value syntax. Bare search terms
are rejected; use title: for title filtering.
Filters
| Key | Values | Description |
|---|---|---|
title |
substring | Case-insensitive substring match. Quote multi-word values. |
archived |
true, false |
Filter by archived state. Default: false. |
has_unread |
true, false |
Conversations with unread assistant messages. |
pr_status |
draft, open, merged, closed |
Linked pull request state. Comma-separated for OR. |
diff_url |
URL | Match by associated diff URL. Quote values containing colons. |
pr |
positive integer | Exact PR number match. |
repo |
substring | Case-insensitive substring match against git remote origin or URL. Quote values containing colons. |
pr_title |
substring | Case-insensitive PR title substring match. Quote multi-word values. |
Multiple filters in one query combine with AND logic.
Examples
# Title substring (case-insensitive)
?q=title:deploy
# Multi-word title (URL-encode the space or use +)
?q=title:my+project
# Unread conversations
?q=has_unread:true
# Conversations with open or draft PRs
?q=pr_status:open,draft
# Filter by diff URL (quote values containing colons)
?q=diff_url:"https://github.com/coder/coder/pull/123"
# Combine filters
?q=title:refactor+has_unread:true+pr_status:merged
# Conversations linked to PR #42
?q=pr:42
# Conversations for a specific repository
?q=repo:coder/coder
# Conversations with a specific PR title
?q=pr_title:"fix auth bug"
Notes
title:,repo:, andpr_title:use ILIKE matching.%and_act as wildcards.pr_status:draftmeans the PR is open and marked as a draft.pr_status:openmeans the PR is open and not a draft.- Conversations without a linked diff status are excluded when
pr_status,pr,repo, orpr_titleis set. Therepo:filter also matches chats tracking a branch with no PR. - Unrecognized keys or bare terms return HTTP 400 with a validation error.