Skip to content

Codex 本地中转 v1.10.0

Choose a tag to compare

@github-actions github-actions released this 03 Sep 12:15
· 12 commits to main since this release
86935c2

Codex Provider Hub v1.10.0

本版本由已验证的功能变更说明自动生成。

2026-09-03-share-card-phone-ratio

  • 类型:fix
  • 发布级别:patch
  • 目标:1. 导出的战报 PNG 不再带外围白边:去掉画布四周 28px 透明边距与烘焙阴影,卡片满幅导出(透明区在聊天工具白底上显示为白边,即用户所见)。
  1. 卡片改为手机屏比例 9:19.5(逻辑 360×780,3× 导出恰为 1080×2340,主流手机屏幕分辨率)。
  • 实际改动:- proxy_static/src/share-card.jsterminalCardTheme() 改为 cardWidth: 360cardHeight: 640(9:16)、新增 cornerRadius: 16、移除 margin(满幅导出)。
  • proxy_static/src/components/ShareCardDialog.vue:画布属性 360×640;整卡圆角裁剪绘制(标题栏顶部圆角、扫描线随裁剪、restore 后圆角描边);hero 数字 56px 带超宽自适应缩号;新增"今日时段分布"小节——数据来自 GET /api/usage-timeline?usage_window=today(Promise.all 并入,失败降级占位),24 个小时位渐变细条(高度∝该小时 tokens)、右上"峰值 X · HH:00"、00/06/12/18/23 刻度;页脚锚定底部。
  • proxy_static/src/styles.css.share-card-canvas-terminal 圆角 16px、max-width 340px,与导出图一致。
  • 测试:tests/share_card.test.js 主题断言更新;tests/local_proxy_vue_ui.test.js 画布 360×640、时段分布、today 时间线请求、无烘焙阴影断言。
  • proxy_static/dist/:重建(index-BAE2UGRC.js / index-DtB-Aow- 为本轮构建产物)。
  • 兼容性:- 纯前端视觉;导出文件名不变;dist 重建。
  • 风险:- today 时间线接口偶发失败:降级为占位文案,不影响其余卡面。
  • 验证结果:- node --test tests/share_card.test.js tests/local_proxy_vue_ui.test.js → 36/36 通过(2026-09-03 19:22)。
  • 假数据 harness 浏览器截图逐项核对:满幅圆角无白边、9:16 紧凑比例、hero 大数字、输入/输出/缓存、构成条、时段分布(渐变细条+峰值 5.2M · 10:00+刻度)、页脚光标,全部正常无重叠溢出(2026-09-03 19:25)。
  • node --test tests/*.test.js 全部通过;python -m unittest discover -s tests -p "test_*.py" → 555 项全部通过;npm run build --prefix proxy_static 构建成功(2026-09-03 19:27)。
  • PR:pending

2026-09-03-usage-chart-toggle-width

  • 类型:fix
  • 发布级别:patch
  • 目标:用量趋势视图右上角"趋势/热力/累计"图表类型切换按钮在空间不足时文字被压成两行("趋/势"),视觉拥挤;加宽按钮并禁止换行。
  • 实际改动:- proxy_static/src/styles.css.usage-chart-toggle 增加 flex-shrink: 0.usage-chart-toggle-button 增加 min-width: 48px; white-space: nowrap,内边距 12→14px。
  • tests/local_proxy_vue_ui.test.js:新增 "usage trend chart toggle stays on one line" 断言。
  • proxy_static/dist/:随本轮重建。
  • 兼容性:- 纯 CSS;dist 重建。
  • 风险:- 极窄屏(<380px)下工具行可能溢出:按钮 nowrap 后整组约 160px,加上时间范围选择器仍在常见手机宽度内。
  • 验证结果:- node --test tests/local_proxy_vue_ui.test.js → 26/26 通过(含新增断言)(2026-09-03 19:22)。
  • node --test tests/*.test.js 全部通过;python -m unittest discover -s tests -p "test_*.py" → 555 项全部通过(2026-09-03 19:27)。
  • PR:pending

2026-09-03-usage-trend-animated-charts

  • 类型:feature
  • 发布级别:minor
  • 目标:按用户确认的需求重构用量趋势视图:
  1. 尺寸与比例修复:图表区紧凑固定高度(约 240–280px),热力图等比缩放居中、列少时不再被拉伸成竖构图巨图;整体留白收紧。
  2. 图型差异化:去掉同质的面积/折线/柱状三选一,换成三个不同家族的图型——时序趋势图(面积+合计线合一,动画版)、日历热力/时段矩阵、累计冲击线+大数字(G18 Draw-in + Counter 风格)。
  3. 动画:入场画入(quarticOut 快进快停)、热力格 stagger 依次出现、大数字滚动;悬停图表重播;指标轮播(tokens ↔ 请求数 ↔ 成功率,5 秒自动切换、悬停暂停、可手动切换);prefers-reduced-motion 自动降级为静态且不轮播。零新增依赖(rAF + CSS)。
  • 实际改动:- proxy_static/src/components/UsageTrendView.vue:图表区整体重写——
    • 图型改为 趋势/热力/累计 三项(normalizeChart 将旧持久化值 line/bars/area 映射到 trend);
    • 趋势图按指标维度渲染(tokens=输入/输出堆叠面积+合计线;requests=请求面积+线;success=成功率线),路径改 <path>
    • 热力图 finishHeatGeom:按可用宽高等比计算 cell(clamp 10–26px)、SVG 显式宽高居中不再拉伸(修复 7 天窗口竖构图巨图 bug)、格子 stagger 入场(每格 12ms、总延迟上限 600ms);
    • 累计冲击线:cumulativeLinePath/cumulativeAreaPath 桶累计曲线 + 右上角大数字滚动(counterDisplay);
    • 动画引擎:quarticOut 缓动 + rAF 画入(DRAW_MS=900,strokeDashoffset 绑定)、scheduleHoverReplay(最小间隔 1.5s)、prefers-reduced-motion 全降级;
    • 指标轮播:CAROUSEL_MS=5000 自动切换(悬停/隐藏暂停、热力图不轮播)、指标药丸可手动切换;
    • 30 秒自动刷新只更新数据并重播入场。
  • proxy_static/src/styles.css.usage-chart 固定 260px 高并居中;.usage-heat-svg/.usage-chart-heatusage-heat-pop 关键帧与 stagger;.usage-metric-pill(.is-active).usage-cumulative-number/label(大数字 24px Space Grotesk);@media (prefers-reduced-motion: reduce) 关闭动画;清理旧 mean/bar/拉伸规则;小字号用 calc(var(--font-meta) - 1px) 维持全库小字号治理约束。
  • tests/local_proxy_vue_ui.test.js:图型断言重写(三图型、METRICS、quarticOut、reduced-motion、轮播、热力 clamp、固定高度 CSS、旧图型不残留)。
  • proxy_static/dist/:重建(index-D7SZ50xP.js / index-Cxx8pZPt.css)。
  • 兼容性:- 纯前端;localStorage 图表键沿用,旧值映射兼容;30 秒自动刷新改为仅更新数据不重播入场。
  • 风险:1. 动画在大量桶(如 all 窗口数百天)下性能:stagger 总时长封顶、画入用单 path 一次 rAF。
  1. 轮播打扰读数:默认 5 秒、悬停即停、药丸常显当前指标;reduced-motion 不轮播。
  2. 热力列数极多(all 多年)时 cell 到下限 10px:容器内横向滚动兜底。
  • 验证结果:- 组件脚本 stub 数值抽查(2026-09-03 18:29):7 天热力 96×210(紧凑不再放大)、24 小时 668×54 单行、30 天 174×210;累计曲线单调递增、路径 7 点 x 递增且终点贴右边界;指标元数据 tokens/requests/success 就绪。
  • node --test tests/local_proxy_vue_ui.test.js → 25/25 通过(含重写图型断言);node --test tests/*.test.js 全部通过。
  • python -m unittest discover -s tests -p "test_*.py" → 555 项全部通过;npm run build --prefix proxy_static 构建成功(2026-09-03 18:30)。
  • PR:#81

2026-09-03-usage-view-padding

  • 类型:fix
  • 发布级别:patch
  • 目标:用量趋势视图与供应商/请求等视图一致,具备左右页面边距和 surface-soft 背景内容区,不再左右顶格。
  • 实际改动:- proxy_static/src/styles.css.usage-view 补齐 padding: 18px 20px 20px; background: var(--surface-soft),子元素 width: min(1520px, 100%); margin-inline: auto 限宽居中(与 .requests-view 同一口径);窄屏媒体查询补 .usage-view { padding: 16px 12px; }
  • tests/local_proxy_vue_ui.test.js:新增 "usage trend view matches the shared page padding and content width" 样式断言。
  • proxy_static/dist/:重建(index-BF0iKsD1.js / index-BTBZCZE2.css)。
  • 兼容性:- 纯 CSS 视觉修复;dist 重建。
  • 风险:- 限宽 1520px 后超宽屏下图表变窄:与请求视图同一内容宽度,观感一致,属预期。
  • 验证结果:- node --test tests/local_proxy_vue_ui.test.js → 26/26 通过(含新增断言)(2026-09-03 18:54)。
  • 浏览器实测(2026-09-03 18:56):从源码启动的服务加载新构建,用量趋势视图标题/汇总卡/图表均与请求视图一致出现左右边距与浅色背景区,不再顶格。
  • node --test tests/*.test.js 全部通过;python -m unittest discover -s tests -p "test_*.py" → 555 项全部通过;npm run build --prefix proxy_static 构建成功(2026-09-03 18:57)。
  • PR:#82