Codex 本地中转 v1.9.0
Codex Provider Hub v1.9.0
本版本由已验证的功能变更说明自动生成。
2026-09-03-share-card-terminal-restyle
- 类型:feature
- 发布级别:minor
- 目标:按用户提供的设计稿(
C:\Users\Kane\Documents\token_report_card.html,"今日 Token 战报"终端风卡片)一比一复刻战报海报:macOS 窗口红绿灯标题栏 +codex — today's-usage.log路径、$日期行、ember 渐变大数字、昨日对比行、输入/输出/缓存三行统计、请求元信息、消耗构成条(第一名供应商)、"最晚一战"页脚与光标块,全部接真实数据。 - 实际改动:-
proxy_static/src/components/ShareCardDialog.vue:drawCard整体重写为终端风卡片(逻辑 380px 宽 + 28px 阴影边距,3× 缩放导出 PNG):标题栏(红黄绿圆点 +codex — today's-usage.log,服务名取自controlBase)、$日期行、Space Grotesk46px 渐变大数字(linear-gradient(100deg, #ff5f2e, #ffb020))、▼/▲ 昨日对比(绿)、输入/输出/缓存三行(右对齐数值)、请求元信息、消耗构成条(90° 渐变 #ff5f2e→#c893ff,宽度=第一名占比;多家显示"共 N 家 · X 领跑")、"最晚一战/你正在敲代码"页脚 + 绿色光标块、静态扫描线;绘制前document.fonts.ready(1.2s 超时竞速);对话按钮换.share-terminal-button(主按钮 ember 渐变)。 proxy_static/src/share-card.js:删除posterStars/posterLayout(旧星空海报专用),新增terminalCardTheme()(色板/字体栈/间距单一来源)。proxy_static/src/styles.css:Google Fonts@import(JetBrains Mono + Space Grotesk)、.share-card-canvas-terminal、.share-card-actions-terminal、.share-terminal-button(.primary)。tests/share_card.test.js:posterStars/posterLayout两个用例替换为terminalCardTheme色板与度量断言。tests/local_proxy_vue_ui.test.js:海报用例重写为终端卡断言(画布 436×509、字体、扫描线、渐变、文案、旧布局工具不残留)。proxy_static/dist/:重建(index-CmG0ijTb.js / index-c2vqW2_1.css)。- 兼容性:- 纯前端视觉重构;下载文件名、复制行为、空数据提示保持。dist 重建。
- 风险:1. webfont 离线不可用导致字形差异:回退等宽栈 + 布局不依赖具体字宽(右侧数值统一右对齐)。
- 长供应商名/长数字溢出:fitText 截断加省略号。
- 对比语义:设计稿箭头与百分比均为主色绿(--good),如实复刻(升/降同为绿);持平/首日用中性灰。
- 验证结果:-
node --test tests/share_card.test.js tests/local_proxy_vue_ui.test.js→ 34/34 通过(2026-09-03 17:49)。 - 真实渲染可视化验证(2026-09-03 17:50):以设计稿同数值的假数据驱动 verbatim 提取的绘制代码,浏览器截图逐项比对——标题栏圆点与路径、
$ 2026-09-03 周四、渐变大数字 11,654,341、▼ 77.6% 较昨日全天、三行统计(11.6M/54.62K/10.85M)、构成条100% baicai copy+独揽今日全部用量、最晚一战 17:00+你正在敲代码光标块全部与设计稿一致,无重叠/溢出。 python -m unittest discover -s tests -p "test_*.py"→ 555 项全部通过;node --test tests/*.test.js全部通过;node --check(classic/src/provider_status)、npm run build --prefix proxy_static全部通过(2026-09-03 17:52)。- PR:#80
2026-09-03-usage-trend-chart-gallery
- 类型:feature
- 发布级别:minor
- 目标:把用量趋势视图的单一样式图表升级为多种可切换的图型,视觉与编码规范参考开源 Skill Lieflat Charts(Mono 灰阶保底、诚实编码、结论式摘要、图型按数据形状选择),继续零新增依赖(手写 SVG)。
- 实际改动:-
proxy_static/src/components/UsageTrendView.vue:重写图表区为四图型画廊——新增图型切换按钮组(面积/折线/柱状/热力,持久化local-proxy-usage-trend-chart,默认area);新增合计折线 +meanValue窗口均值虚线;新增barRects零基线堆叠柱(输入/输出两档灰度);新增heatLayout/heatCells/heatLevel热力矩阵(小时粒度=日期×24 小时、天粒度=星期×周,值=合计 token 五档灰阶,格级hoverCell悬停明细);汇总卡第一项改结论式(conclusionLabel= "窗口合计 → N tokens");图例按图型切换并标注编码含义("虚线=窗口均值;y 轴从 0 开始"、"零基线 · 不断轴")。 proxy_static/src/styles.css:新增--usage-mono-1..4/--usage-mono-ink/--usage-heat-0灰阶变量(明暗两套主题取反方向);图表配色由 teal/amber 彩色系切换为 Mono 单色系;新增图型切换按钮、均值线、堆叠柱、热力格与热力图例样式。tests/local_proxy_vue_ui.test.js:新增 "usage trend view offers selectable mono chart types" 源断言测试(四图型选项与持久化键、meanValue/barRects/heatCells/heatLevel/conclusionLabel渲染分支、灰阶 CSS 变量与新样式存在)。proxy_static/dist/:npm run build重建(index-DqQoFmZx.js / index-ytPSDIQN.css)。- 另安装了用户级 Skill
C:\Users\Kane\.agents\skills\lieflat-charts(克隆自上游仓库,仅作为设计规范参考,未复制其代码,仓库内无其任何文件)。 - 兼容性:- 纯前端展示层变更;旧 localStorage 时间范围键沿用,新增图表类型键缺失时默认
area。dist 重建。 - 风险:1. 热力矩阵在
all长跨度(周数多)下格子过小:限制最大列数标签抽稀、格子最小尺寸,超宽时仅标注首末周。
- 图型切换与自动刷新竞态:切换只改渲染,不触发重新请求,数据流不变。
- 灰阶在暗色主题对比度不足:灰阶变量在暗色主题取反方向(浅→深),图例同步。
- 验证结果:-
node --test tests/local_proxy_vue_ui.test.js→ 25/25 通过(含新增 1 项)(2026-09-03 17:35)。 - 组件脚本 stub 执行几何抽查:天粒度热力 7 格分档单调(levels 4122334)、柱状堆叠底边落在零基线、24 小时热力 24 格单行且列宽越界检查通过(2026-09-03 17:36)。
python -m unittest discover -s tests -p "test_*.py"→ 555 项全部通过;node --test tests/*.test.js全部通过;node --check(classic/src/provider_status)、npm ci+npm run build --prefix proxy_static全部通过(2026-09-03 17:36)。- PR:#79