Files
ele-HeiXiu/CHANGELOG.md
YoungestSongMo 95019316b2 feat: 前后端联调 — 任务创建 + 账户信息 + 预估花费 (0.0.18)
- task: device_id 改为必填参数,API 层 Omit 封装 + getDeviceId() 自动注入
- pricing.ts: Python 后端 calculate_cost 完整移植,六种定价模式 + 6 个 Bug 修复
  (浮点冗余/维度匹配不一致/null 守卫/matrix 数据提取/unit_scale 等)
- ModelInputForm: 三层兜底预估消费展示 + React Hooks 顺序修复
- AccountInfo: VIP 等级列表匹配,套餐详情展示(说明/周期/席位/到期)
- 模型列表加密缓存 (safe-storage, stale-while-revalidate)
- VIP API 模块 (激活码/等级/订单/模拟支付)
- device_id 统一使用 UUID v4 持久化 (与 login/register 对齐)
2026-06-10 19:38:26 +08:00

7.2 KiB
Raw Blame History

更新日志

每次发版前修改此文件,npm run build:win 打包后会自动读取生成 update-info.json。


0.0.182026-06-10

前后端联调 — 任务创建 + 账户信息 + 预估花费

任务创建联调

  • CreatTaskRequestBody.device_id 改为后端必填参数API 层 Omit 封装,自动注入 getDeviceId()UUID v4 持久化,与登录/注册统一)
  • useSubmitTask 泛型同步改为 Omit<CreatTaskRequestBody, 'device_id'>,调用方无感
  • submitTask 移除 body.device_id || getDeviceId() 兜底逻辑,始终以本地生成的设备 ID 为准

预估花费计算(与 QT/Python 后端对齐)

  • src/utils/pricing.ts — 从 Python 后端 calculate_cost 完整移植六种定价模式:
    • 服务端:SIMPLE · MULTI_DIMENSION · BILLING_ADAPTERper_k_chars / rate + 条件附加费)
    • 客户端:fixed · per_k_chars · rate_matrix · matrix
  • ModelInputForm.tsx — 三层兜底预估消费展示:完整动态计价 → 配置文件兜底提取 → 模式标签
  • 修复 6 个定价 Bug
    • SIMPLE 浮点冗余 (x/100)*100 在 IEEE 754 下不恒等 → Math.round(分子)/100
    • rate_matrix / matrix 内联维度匹配缺少 .trim().toLowerCase() + null 跳过 → 统一 matchDimensions()
    • lookupMappingValue / matchDimensions 缺 null 守卫 → Cannot use 'in' operator 崩溃
    • rate_matrix 错误应用 unit_scalePython spec 无此行为)→ 移除乘法
    • matrix 模式 dimensions 空值提前返 nullMULTI_DIMENSION 不一致)→ 对齐处理
    • 矩阵维度提取 row.raw — API 实际在行顶层存储维度(如 resolutionraw 子对象不存在 → matrixRowData() 兼容两种格式
  • pricing_config 类型修正:Record<string, unknown>Record<string, unknown> | null(对齐 OpenAPI anyOf
  • 修复 React Hooks 顺序违例 — estimatedCostDisplay useMemo 移至提前返回之前

账户信息联调

  • AccountInfo.tsx "当前套餐"从 VIP 等级列表匹配详细数据:
    • vip_level_idVipLevelsItem.id 映射查找
    • 新增套餐说明、套餐周期字段,席位上限优先取 VIP 等级值
    • 到期时间提取 isExpired 变量复用
  • VipAPI.getVipLevels()AuthAPI.getUserInfo() 并行加载

模型列表缓存

  • 加密持久化缓存safe-storage启动时 Promise.all 初始化,缓存优先渲染消除 loading 闪烁
  • useModelList Stale-while-revalidate即时展示缓存 → 后台拉新 → 覆盖缓存

其他

  • VIP API 模块(src/services/modules/vip-api.ts)— 激活码/等级列表/订单/模拟支付
  • ESLint/TS 类型修复(未使用符号清理、分号补充)
  • CLAUDE.md 更新系统兼容性说明

0.0.172026-06-09

修复接口重复调用 — 请求量减半

  • AppProvider 自动登录 useEffect 增加 aborted 清理标志,修复 StrictMode 双重挂载导致 refreshToken/getUserInfo 各调两次
  • useModelList 提升到 LeftPanel 单例调用,修复 ModelSelector 和 TaskHistory 各自独立请求全量模型列表
  • 开发模式 DevTools 中"已停止"的请求即为 StrictMode 第一轮挂载被丢弃的请求
  • 模型输入栏三层架构useUI 组件体系10 种 widget → antd 映射)+ useModelUI Hookparam_schema → UIFieldConfig[]
  • constraints_config.requires 动态联动enable_switch 开关控制依赖字段启用/禁用
  • 修复模型默认值不加载antd 外部 form 实例忽略 initialValues+ DependentFormItem prop 透传断裂
  • PageDispatcher 统一页面调度Modal/Drawer/FloatingPanel 三容器,全局互斥,动态视口尺寸
  • 账户信息页AuthAPI.getUserInfo() 驱动,积分/套餐/统计三卡片布局
  • 代码去重runFieldChecks 校验运行器 + createImageBeforeUpload 上传校验工厂
  • 主题切换性能优化 — View Transitions API + 0.15s 统一过渡 + 设置页增强0.0.15 延续)
  • 目录调整wechat-work/ → headers/

0.0.162026-06-09

模型输入栏重构 + 统一页面调度 + 依赖联动

  • 模型输入栏三层架构useUI 组件体系10 种 widget → antd 映射)+ useModelUI Hookparam_schema → UIFieldConfig[]
  • constraints_config.requires 动态联动enable_switch 开关控制依赖字段启用/禁用
  • 修复模型默认值不加载antd 外部 form 实例忽略 initialValues+ DependentFormItem prop 透传断裂
  • PageDispatcher 统一页面调度Modal/Drawer/FloatingPanel 三容器,全局互斥,动态视口尺寸
  • 账户信息页AuthAPI.getUserInfo() 驱动,积分/套餐/统计三卡片布局
  • 代码去重runFieldChecks 校验运行器 + createImageBeforeUpload 上传校验工厂
  • 主题切换性能优化 — View Transitions API + 0.15s 统一过渡 + 设置页增强0.0.15 延续)
  • 目录调整wechat-work/ → headers/

0.0.152026-06-09

主题切换性能优化 — 桌面端流畅度提升

  • View Transitions API 驱动主题切换GPU 合成器单次 cross-fade 替代 80+ 个独立 CSS 过渡,消除 Electron 卡顿
  • 主题更新时序统一:applyHtmlTheme 从 updater → useLayoutEffectCSS 变量与 React 提交同帧
  • 过渡参数对齐:全部 0.2s ease0.15s linear,桌面应用更利落
  • CSS 过渡精准覆盖antd 容器组件Layout/Card/Modal/Table/Input/Menu 等 ~80 个类)替代 html * 全局选择器
  • 设置页 Esc 键关闭 + macOS 关闭按钮适配 + 关闭后焦点防跳转

0.0.14 -- 🚀更新公告

模型选择器焕新

  • 模型列表改为标签页分组展示新增「全部模型」Tab
  • 列表项新增悬停高亮效果,维护中模型自动置灰并提示
  • 修复选择模型后参数表单重复 key 报错
  • 类型体系重构,支持后端分类 slug 自动映射

0.0.132026-06-07

  • 修复主题切换后首页状态重置问题:设置页去路由化,改为事件总线驱动的 Modal 叠加
  • 首页三栏分隔条视觉对齐:移除右侧多余 margin左右完全对称
  • 轮播图新增关闭按钮session 级别隐藏,每次启动重新展示
  • 确立 QT 多窗口模型 → Web 架构映射原则:叠加层走 Modal/Drawer + 事件总线,不走路由
  • 修复首页三栏布局溢出:拖拽分隔条增加最大宽度约束 + 视口缩小时自动收窄面板,防止右侧面板被挤出视口

0.0.122026-06-04

  • 重构更新检查流程无更新不再抛异常PreCheck → 直接 IPC 通知
  • 新增用户决定下载流程:检查到新版本后展示更新内容,用户确认后再下载
  • 设置页新增"查看详情"弹窗Markdown 格式化展示更新日志
  • 新增"下载更新"按钮,与"安装更新"分离为两个独立操作
  • 修复测试服务器版本排序(字符串序 → 语义版本序0.0.10 正确排在 0.0.9 之后)
  • electron-updater Provider 增加 TTL 缓存,避免重复 API 请求
  • 修复 Windows cmd set 命令空格导致的 Invalid URL 问题
  • 修复 electron-updater 'error' 事件拦截,无更新不再爆红

格式说明

每个版本以 ## x.y.z日期 开头,内容为无序列表。打包脚本会提取最新版本的日志填入 update-info.json。