Skip to content

feat(web): client pill — detected downstream client capsule in proxy-logs - #1374

Merged
DeliciousBuding merged 1 commit into
masterfrom
feat/client-pill
Sep 13, 2026
Merged

DeliciousBuding merged 1 commit into
masterfrom
feat/client-pill

Conversation

@DeliciousBuding

Copy link
Copy Markdown
Owner

后端早已检测并存储下游客户端(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 评论)。

…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>
@DeliciousBuding
DeliciousBuding merged commit 8a9dc9d into master Sep 13, 2026
25 checks passed
@DeliciousBuding
DeliciousBuding deleted the feat/client-pill branch September 13, 2026 19:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant