Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

## 未发布

- 面板:侧栏「GitHub / 文档」两枚链接不再折行,字体偏宽时「文档」不会逐字竖排,空间不够先缩箭头再省略文字;VM 列表搜索框关闭浏览器自动填充,不再被回填成登录邮箱。
- 集群槽无需重建 VM 即可更新 Go 槽位服务(kin-worker / kin-egress):持久化 `slot-bin` 挂载推送二进制,fleet `action=telemetry` 热更新遥测与 egress。(#600)
- Codex 入站在平台探测前支持 CPR 式 `routing.codex.model_mappings` 精确模型映射;默认 `codex-auto-review` → `gpt-6-luna`(清空该键时回退 `gpt-6.1-sol`)。日志保留 `requested_model` / `upstream_model`;非法或非 GPT 目标 400,不 hop Anthropic。(#526)
- 保留路径不再给没有可用签名的 thinking 补 `signature: ""`:缺失、空、短于 24、dummy 的删掉;签名可用的留,空正文也留。这一支里的 `redacted_thinking` 不看 data 和签名,原样留;不走保留路径时仍按原规则删。5.5 的非保留路径仍接受短的非 dummy 签名。没有按账号归属过滤签名。
Expand Down
24 changes: 11 additions & 13 deletions web/src/components/layout/app-title.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ const CHIP_CLASS =
const CHIP_LINK_CLASS =
'cursor-pointer hover:border-primary/45 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground'

// 两枚链接按内容分一行且不折行:中文标签被压窄时会逐字竖排;空间不够先缩箭头,再省略文字。
const CHIP_PAIR_CLASS = 'flex-auto justify-center whitespace-nowrap'
const CHIP_PAIR_ARROW_CLASS = 'size-3.5 min-w-0 shrink-[100] opacity-60'

// 版本号单独占一行且不截断:发布号可能带预发布/构建后缀,截断会丢失关键信息。
const VERSION_CHIP_CLASS = 'h-auto min-h-10 gap-2 py-1.5 text-base'

Expand Down Expand Up @@ -51,34 +55,28 @@ export function AppTitle({ version }: { version?: string }) {
</div>
<div className='mt-2.5 grid gap-1.5 group-data-[collapsible=icon]:hidden'>
<VersionChip version={version?.replace(/^v/i, '')} />
<div className='flex gap-1.5'>
<div className='flex min-w-0 gap-1.5'>
<a
href={REPO_URL}
target='_blank'
rel='noreferrer'
title='github.com/dofastted/vm2api'
className={cn(CHIP_CLASS, CHIP_LINK_CLASS)}
className={cn(CHIP_CLASS, CHIP_LINK_CLASS, CHIP_PAIR_CLASS)}
>
<IconGithub aria-hidden className='size-4 shrink-0' />
GitHub
<ArrowUpRight
aria-hidden
className='size-3.5 shrink-0 opacity-60'
/>
<span className='truncate'>GitHub</span>
<ArrowUpRight aria-hidden className={CHIP_PAIR_ARROW_CLASS} />
</a>
<a
href={DOCS_URL}
target='_blank'
rel='noreferrer'
title='项目入门'
className={cn(CHIP_CLASS, CHIP_LINK_CLASS)}
className={cn(CHIP_CLASS, CHIP_LINK_CLASS, CHIP_PAIR_CLASS)}
>
<BookOpen aria-hidden className='size-4 shrink-0' />
文档
<ArrowUpRight
aria-hidden
className='size-3.5 shrink-0 opacity-60'
/>
<span className='truncate'>文档</span>
<ArrowUpRight aria-hidden className={CHIP_PAIR_ARROW_CLASS} />
</a>
</div>
</div>
Expand Down
5 changes: 5 additions & 0 deletions web/src/features/vm/list-page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,11 @@ export function VmListPage() {
<Input
className='h-8 w-64'
type='search'
name='vm-filter'
autoComplete='off'
data-1p-ignore
data-lpignore='true'
data-bwignore
placeholder='搜索名称 / 邮箱 / 代理'
value={q}
onChange={(e) => setQ(e.target.value)}
Expand Down
Loading