feat(web): client pill — detected downstream client capsule in proxy-logs - #1374
Merged
Merged
Conversation
…roxy-logs The backend already detects and stores the downstream client (Codex CLI, Claude Code, Gemini CLI, SDK families via proxy/profiles UA sniffing), but the UI only exposed it as a filter and a plain-text detail row. Render it as a capsule with the brand glyph: new client column in the proxy-logs table (desktop; mobile keeps the compact card set) and in the detail sheet's conversation section. Unknown clients degrade to plain text, empty detection renders the cell dash as before. Demo seed now writes realistic client tuples so the evidence pipeline shows the column. Co-authored-by: Cursor <cursor@vectorcontrol.tech>
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.
后端早已检测并存储下游客户端(Codex CLI / Claude Code / Gemini CLI / SDK family,proxy/profiles UA 嗅探),但 UI 只有筛选器和详情纯文本。参考上游日志页的「客户端」概念(clean-room:只借信息架构),补齐展示层:
ClientPill(components/common):应用名优先、family 兜底;已知客户端配品牌字形(Codex/ChatGPT→openai、Claude→claude、Gemini→gemini、DeepSeek/Qwen 同理),未知客户端纯文本,空检测不渲染。图标解析显式规则先行、模型品牌规则兜底(Codex CLI这类应用名过不了 model 规则)。vitest 相关域 90 全绿(含 5 个新组件测试)· lint/format/knip 绿 · 双主题+详情抽屉截图人工过目(见 PR 评论)。