Skip to content

更新日志 ​

本项目的版本遵循语义化版本 2.0.0。feat 递增 MINOR(0.7.0 → 0.8.0),fix/perf 递增 PATCH(0.7.0 → 0.7.1),其余提交不触发发版;大版本(1.0.0 及以后)由发布者手动决定。

本文件是唯一更新日志源:发版时由 python-semantic-release 自动在版本列表标记处插入新版本段,无需手动维护。

v0.26.2 (2026-10-10) ​

Bug Fixes ​

  • 库存估值: 最低卖单价被离群挂单带飞 —— 加可信度判据并剔出资产总额 (e0e6b64)

  • 文档+隐私: README 重写为面向用户的宣传文档;测试夹具脱敏 (16d1843)

  • 核算/筛选: 修测试蓝图取错配方、自制成本口径、查看核算矛盾与筛选重判 (397cffb)

  • 计划表: 成本/利润改个人口径、价格更新后自动重算、类别筛选改下拉 (ea4b943)

Code Style ​

  • 设计语言)+chore(注释: 同种语义的界面形态统一;注释去陈旧与复述 (bf3fdfa)

Continuous Integration ​

  • release: 回退发版路径补上 CHANGELOG 说明(不再拿提交正文当 Release 说明) (c479ffc)

v0.26.1 (2026-10-06) ​

Features ​

  • 自制成本: 查看核算 / 采购小助手 / 生产计划大表三处加「自己造一件要多少钱」列,用来判断一件料 自己造还是买(口径:料钱 + 作业费 ÷ 单轮产出,制造与反应产物都算,无配方显示 —) (9ac3a1c)

  • 工业规划: 改材料机库时问一句「绑定的蓝图要不要一起挪过去」,点「是」才动库存 (59b3e65)

Bug Fixes ​

  • 工业规划: 蓝图不在材料机库也算启动短板 —— 小助手/启动闸门显示「缺蓝图」并说清蓝图现在在哪个机库 (b385df1)

  • 科研: 产线小助手/计划表显示物品图标;双击复制的蓝图名给输入 T1 而不是产物 T2 (bc22752)

  • 库存: 新建机库后仓库管理与采购入库立刻可选;入库机库选择收敛成一份 (bac2388)

  • 工业规划: 「填料总表」列出科研材料(数据核心 + 解码器) (b1afced)

  • 工业规划: 科研材料进待采购 + 蓝图绑定按活动解析输入蓝图(发明要绑 T1、拷贝绑被拷的 BPO) (bcc87ca)

v0.26.0 (2026-10-05) ​

Features ​

  • 异动榜: 只留有参考价值的条目 —— 流动性/稳定性门槛、抗污染窗口价、极端 标记 (e6f5bc4)

  • 市场监控)+fix(工业规划: 大盘与关注页重构、异动榜可用化、性能与分类口径修正 (3c051e9)

v0.25.5 (2026-10-03) ​

Bug Fixes ​

  • 备料: 子线已覆盖的自制件缺口不再报「材料不足」,改显示「等待子项」 (670ae64)

  • 库存: 同名多堆必须累加后入库,否则只写最后一堆 (b1539e0)

Chores ​

  • release: Uv.lock 同步到 0.25.4 (d9b1160)

Continuous Integration ​

  • 去掉永远失败的 Codecov 上传与无人消费的 --cov,日志不再刷 Token required (994833a)

Testing ​

  • CI: 修掉无库环境下的进程 abort 与容器单例污染,非 UI 档 0 failed (34850d5)

  • 标记: 11 个加载 Qt 的测试文件补上 ui 标记,让「非 UI 档」headless 安全 (19393f1)

v0.25.4 (2026-10-01) ​

Bug Fixes ​

  • ESI: Token 端点 5xx 退避重试,文案不再误报「授权失效」 (c563181)

  • 查询: 资产折线图本月档位、x 轴日期,订单列表条数与取数 (51294c2)

  • 计划: 递归拆解只作用于本次母项,不再全库重放 (b0c66e4)

Chores ​

  • release: Uv.lock 同步到 0.25.3 (14d7e32)

Continuous Integration ​

  • 只跑非 UI 档并补 -s,修掉 offscreen 下的批量 ERROR 与 62% 段错误 (790e12a)

Documentation ​

  • api: 重生成 API 文档 (97f867a)

  • 发版: 补「本地一步发版」—— PYTHONUTF8 + GH_TOKEN 一条命令走完 (2f8e451)

Features ​

  • 仓库/蓝图: 一批用户报障与新列,价格来源可选 (353f9ec)

Performance Improvements ​

  • 订单: 复用 APIClient/session,取数稳态快约 2.9× (a2b0ec8)

v0.25.3 (2026-10-01) ​

Bug Fixes ​

  • 工业/查询/设置: 用户清单七项缺陷 + 数据备份/还原 + 三处自查真问题 (5f9a6d1)

  • 查询: 「全物品」与搜索框不再互相顶替 —— 修回不到查询详情 (1ddc483)

  • 查询: 首页的「全物品」面板去掉制造/贸易评分按钮 (3c55ba6)

  • 窗口/查询: 无边框窗口吸附与边缘缩放 + 全物品区域/性能/卡顿 (8157650)

v0.25.2 (2026-09-27) ​

Bug Fixes ​

  • 产线/工业: 子项行不能部分启动 + 行内动作在 QML 信号处理器里弹框导致闪退 (89b6723)

  • 工业/蓝图绑定: 绑定弹窗多选后一次性写库、滚动位置不再回顶、列宽贴合内容 (dd10834)

  • 工业/蓝图绑定: 绑定弹窗补上 Shift 连选,口径与计划表一致 (a673c9b)

  • 工具: 快照/测试的临时工作目录不再泄漏 —— 跑完自清 + 启动时清历史残留 (c62695f)

  • 界面: 五处「勾选即重建整个行模型」清掉 —— 导入预览/机库清单/机库设置不再整表重建 (380b55b)

  • 窗口: 置顶不再持久化 —— 所有窗口一律以不置顶启动,点了置顶按钮才置顶 (0501ad9)

v0.25.1 (2026-09-26) ​

Bug Fixes ​

  • 版本一致性静默失效 + 单实例探活会杀进程 + P2-2 索引改判 + 三页收尾修复 (d57935e)

  • 外壳/估价/贸易: 主窗口越界回正、估价页按钮分组、贸易页改读本地价并提速 (b704207)

  • 贸易/工业/合同: 三页审计问题修复 —— 线程生命周期、异常复位、重算补算、详情串号 (69dd036)

  • 退出期: 运行中线程被连带析构导致 Qt abort + QML 表头空指针 (851c554)

Chores ​

  • 文档: 删除两份已过期的历史存档审计文档 (b4e3338)

  • 工具: 新增 dsh-worktree.json,声明 worktree 项目约定 (1a5c80c)

Features ​

  • 界面: 汇总表双击复制 + 「人物占用」改用仪表盘面板并按已规划统计 (6d885e0)

  • 工业/贸易/查询: 六项改动 —— 科研容量、逐条下线机库、行内启动、占用面板、图表竖线 (b626a9e)

v0.25.0 (2026-09-20) ​

Bug Fixes ​

  • ESI: 军团钱包 scope 拿不到 —— 重新授权不带上它,功能不可达 (f3eb341)

  • 价格: 消除价格更新 worker 的 import 死锁 (4195308)

  • 工具: Worktree 删不净 —— 补回被冲掉的 purge_tree (10b1427)

  • 挂单): ESI 同步清掉无归属的历史行;feat(ESI: 可选把军团钱包计入余额 (6b57b8e)

  • 挂单): 旧导出不许覆盖 ESI 数据;feat(ESI: 两次同步之间也算卖出/买到 (41e4fef)

  • 采购小助手: 买卖差价按数量算成金额 —— 原来给的是单价差 (b90b25e)

Chores ​

  • deps: Uv.lock 对齐 pyproject 版本 0.24.2 (d78e645)

  • 文档: 对齐 gen_api_docs 漏生成/漏更新的 6 页 (4a192b2)

  • 格式: Ruff format 收尾 —— order_export 与对应用例 (00391c6)

Features ​

  • ESI: 从 EVE SSO 拉取角色技能/队列/植入体,与手工填写并存 (50202a5)

  • ESI: 拉取角色钱包余额与未结挂单 —— 挂单变动按角色分组比较 (34c7b51)

  • 合同: 拆成拍卖/物品交换/运输三个子页,修好拉取链路 (d2bc9e8)

  • 合同: 页签改分段控件、按发布者反查、图标与价差自动补齐,两张表可排序 (abc2132)

  • 导入: 交易记录剪贴板导入;三个窗口的宽度与重叠修复 (a9b1a6b)

  • 贸易: 市场贸易页改成 A→B 全品类价差排行,新增购物车窗口 (9b8b863)

Testing ​

  • 取价: 缺真实 database/ 时整模块跳过 —— 不再让 CI 的测试 job 因缺库变红 (07cc4a8)

v0.24.2 (2026-09-20) ​

Features ​

  • 工业制造: 编辑计划加发明预期面板、对话框按可见行数自适应;生产计划表删掉「成功率%」「解码器」两列 (8020026)

  • 估价页: 价格取自可改贸易中心 + 精炼价值入表 + 人物读真实技能 + 按钮重排 (e540d2f)

Bug Fixes ​

  • 科研链路: 研究完成提升绑定蓝图原本的 ME/TE(不再写成物品的幻影库存)、发明材料按尝试次数计并含解码器、复用计划清实际产出回填;蓝图类型门(拷贝/研究只收 BPO、发明只收 BPC)与未绑定拒绝启动 (d4be179)

  • 绑定: 改流程 / 并行后按新参数重新对齐蓝图绑定;覆盖条数按份数(容量)算,并行发明不再只绑一张 (68b32a1)

  • 常量: Hek 的星系 id 写成了 Uriok → 系统成本指数一直在取别的星系 (e602c33)

  • 机库设置: 大括号错位 —— 「默认机库」页被塞进 Tab1、删除确认条顶替成第二页 (6dd0d08)

  • 仪表盘: 产线条分母取最大值 + 涨跌基准按档位 + 卖单置顶 (6946360)

  • 工具: 新开 worktree 报错 —— 恢复被并发会话冲掉的 WorktreeCreate/Remove 钩子实现 (527c4e1)

v0.24.1 (2026-09-19) ​

Bug Fixes ​

  • 修发行版两处崩溃 —— 幽灵 import 与 SQL 缺 AS (c73222e)

  • 机库设置: 右侧编辑面板被 Repeater 包住 → 不被 Layout 布局,压住左侧机库列表 (34c2d52)

v0.24.0 (2026-09-19) ​

Bug Fixes ​

  • 查询页: 候选不再截断,并排除无用类别(清掉候选里重复的 ♦ 条目) (56d5580)

  • 查询页: 空搜索框反复点击都要弹历史,候选弹窗开关改由桥的显式信号驱动 (fcc2f31)

  • 查询页/工业页: 修闪退与两块空面板;查看类窗口独立化;搜索收紧为前缀 (910349a)

  • 窗口: 标题栏拖动失效 —— scenePosition 在本机 Qt 取不到;同一次按下只起拖一次 (e8b9be5)

Chores ​

  • deps: Uv.lock 中本项目版本对齐 pyproject(0.15.4 → 0.23.2) (6bc3dcf)

  • 测试规范: 加测试判定表与体检工具,修 target 档误匹配 (3eacaa0)

Documentation ​

  • 测试规范: 修掉与判定表矛盾的旧耗时数字与「提交前跑 full」 (a4635f3)

  • 测试规范: 判定表 mock 行细分「替身契约」与「实现细节代理」 (f5ec120)

Features ​

  • 查询页: 候选带图标并按名字去重;精炼接上矿石专精;工具栏去掉两个按钮 (5dfad47)

  • 查询页: 去掉结果表格,候选弹窗即匹配清单;候选不截断且排除无用类别 (a05d127)

  • 查询页: 精炼面板按所选人物的技能算产率,并支持数量与站点 (5718da7)

  • 科研/工业页: 修发明三处口径(SDE quantity / 技能成功率 / 流程×并行)并改造科研对话框 (ac6e2ed)

Testing ​

  • 清理: 按测试判定表删纯样式用例与零信息断言 (7e00ab1)

v0.23.3 (2026-09-18) ​

Bug Fixes ​

  • SDE缓存: 复用本地已存在的 sde.zip,不再重下 112MB (e72c5b2)

  • SDE缓存: 提取改原子写+完成标记;下载补 429/503 退避重试 (481e997)

  • 发行包: 打包前对模板库做 WAL checkpoint (caab9bd)

  • 发行包: 打包前无头生成模板库;产物改白名单,缺文件即失败 (80977c2)

  • 数据库: User 库备份失败阻断迁移;迁移缺失不再静默推版本号 (bf40064)

  • 材料计算: 单件材料豁免下沉到底层函数,修 BOM/计划路径少要一个料 (b588775)

  • 计算: 技能系数按客户端 SDE 文案校正;制造补蓝图所需技能 1%/级 (dca925a)

Chores ​

  • 工具: 新增 scripts/new_worktree.py,建 worktree 时自动带上本地运行数据 (a11b8d1)

Performance Improvements ​

  • 图标: 分批提交下载任务,首启堆峰值 87.1MB → 20.1MB (a92d233)

  • 蓝图: 补蓝图表查找索引,逐件研究成本 784ms → 56ms(200 件不同物品) (7bcc37e)

  • 评分: 批量重算 30.0s → 1.81s(材料价/EIV 批量预取 + 研究成本整批一次算) (44d6187)

Testing ​

  • 消除未 await 协程警告;把恒真断言换成真行为断言 (4326ac0)

v0.23.2 (2026-09-18) ​

Bug Fixes ​

  • 生产规划页: 工具栏控件统一尺寸;列宽贴合内容 (ad56e2c)

  • 仓库导入 / 窗口: 剪贴板导入提速;最大化拖动先还原再跟手、对话框补属主窗口 (38a074a)

Features ​

  • 查询页: 仪表盘六项按反馈重排;订单变动弹窗联动钱包 (2834346)

v0.23.1 (2026-09-17) ​

Bug Fixes ​

  • 数据: 回填 item.category_id,恢复失效的术语一致性校验 (6de157c)

Chores ​

  • 流程: 修 7 处失效护栏、收紧 plan-auditor、两份 CLAUDE.md 重组 (d96651e)

Refactoring ​

  • 消除四组逐字复制、删死代码与兼容 shim、测试 2526 → 2281 (d9e278e)

  • 取价: 合并两处等价 SQL,消除「改价需两边同步」的分裂点 (11860e9)

  • 工业页: 删掉恒为真的历史开关 headless_host (4866092)

Testing ​

  • 修 UI 套件 flaky 根因、恢复分层护栏、同步文档实测耗时 (b1d2cb0)

  • 删掉脆弱的源码字符串/几何/signature 断言(判据:改实现就该允许过) (5468ce2)

  • 推广剪贴板有界等待,消除 4 个文件的竞态 flaky (b200def)

  • 改强 52 条弱断言、修 1 处空转 mock(D 批次) (02841e2)

v0.23.0 (2026-09-16) ​

Bug Fixes ​

  • 工业/采购: 自制件按全量计划排除;启动小助手选中与占用条几何;采购表列重排 (79acec0)

  • 材料: 需求改按整批取整,修「材料够了却报不足」;计划表新增「材料不足」状态 (56dbb6d)

  • 查询页: 修「选中一行后进程退出崩」;挂单导入对齐真实导出格式 (2089c50)

  • 查询页: 修两处用户实测缺陷;补挂单导入确认框与文档 (d8d1fd6)

  • 退出: 关机时拆掉工具窗的 QML 场景,修 528 条 null 绑定告警 (0d428ef)

Build System ​

  • 裁剪未使用的 Qt 模块,发行包 190MB → 80MB (3bd12a6)

Features ​

  • 查询页: 仪表盘按反馈重排;修下拉框白底白字;产线占用改按类型分行 (b17fb52)

  • 查询页: 空闲态仪表盘 + 有结果态详情面板 (3b1f3d4)

v0.22.0 (2026-09-16) ​

Bug Fixes ​

  • 卡片阴影完全没画出来(MultiEffect.shadowBlur 是归一化值,不是像素) (95272d2)

  • docs: README 测试清单守卫只校验每行第一个文件 + 清理指向已删文件的文档 (b4e65be)

  • QML: 对话框没铺底色(真窗口整块纯黑)+ 标签截断 + ui 全量档段错误根因 (92ad6fd)

  • QML 外壳: 图标整片消失 —— 语义键被当成文件名拼进了 image:// URL (f26a446)

  • QML 宿主: 加载失败要看得见,不能只写日志 (91f7b66)

  • QML 对话框: 父窗口不是 QWidget 时收敛成 None(为批次 7.4 铺路) (7085135)

  • 仓库管理: 点击命中固定在按下那一刻 + 去掉每格一次跨边界调用 (33930d4)

  • 仓库管理: 选中高亮根本没送到画面上 + 补回排序 + 收紧上半区;全项目统一点击机制 (0359ee0)

  • 右键菜单: 二级菜单闪一下又收 —— 弹出改为延迟一拍 (da4b24a)

  • 收尾: 已销毁窗口的主题监听器自收敛 + 测试的剪贴板竞态 + 重写测试文档 (dd44c83)

  • 测试脚本: 调虚拟环境解释器,别退回裸 python(会误报绿灯) (38a77eb)

  • 生产规划右键: 二级菜单闪一下又收 —— 根因是 visible 绑定在 Popup 上 (ac42d78)

  • 界面: 物品查询 / 工业制造 / 合同市场 补上内容区外框 (45eb45e)

  • 表行点击: ListView 里的命中少了 contentY,滚过就点错行 + 母项拆解/移库迁 QML (faf2a04)

  • 计划表: 点击命中固定在按下那一刻,双击语义改为可靠可达 (5b3068f)

  • 退出: 先拆 QML 场景再让引擎析构 + 关闭延迟一拍 (1fb5378)

  • 退出: 点关闭后 FluentWinUI3 成片刷屏 —— 只丢退出期的 Qt 内建 QML 告警 (6783682)

Chores ​

  • Pre-commit 正装进 .venv 并重装 git 钩子 (92de6f5)

  • 清掉四处已确认零调用者的死代码 (1cd2e6f)

  • QML 迁移: 拆掉 conftest 的第一道墙 + 文档改指 QML(批次 6.2 前半) (0dd20ff)

  • 快照: 给本批 7 个新对话框登记快照工厂 (77722e1)

Code Style ​

  • Pre-commit 钩子升到最新版并全量格式化 (5f81a47)

Features ​

  • 三个工业对话框迁移到 QML(Fluent Design 阶段 4-2) (9d4ca26)

  • 三个汇总类对话框迁移到 QML(Fluent Design 阶段 4-3) (1f162a4)

  • 主题收敛为 Fluent 双主题 + QML 控件主题化 + 修复启动死锁 (2b191f2)

  • 仓库管理页迁移到 QML(Fluent Design 阶段 3-5,阶段 3 完成) (97d34d0)

  • 价格监控页迁移到 QML(Fluent Design 阶段 3-3) (cb971b5)

  • 估价页迁移到 QML(Fluent Design 阶段 1 试点) (1e94885)

  • 原图权威化 + 剪贴板导入加固 + 部分启动 + 甘特图排期 (06d0e15)

  • 取值对话框 / 物品搜索 / 材料覆盖迁移到 QML(Fluent Design 阶段 4b-1) (ca0c91d)

  • 合同市场页迁移到 QML(Fluent Design 阶段 3-4) (d7f9c45)

  • 合同详情 / NPC 卖家 / 星系搜索迁移到 QML(Fluent Design 阶段 4c 部分) (bf1dde0)

  • 子项并行配置 / 子项大规模产线并行迁移到 QML(Fluent Design 阶段 4-5) (3728104)

  • 导入审查 / 蓝图导入迁 QML(阶段 4b 完成)+ 拆掉桥对宿主窗口的悬空引用 (7866b0d)

  • 工业链路迁移到 QML(Fluent Design 阶段 2) (7ad9fa4)

  • 工业页外壳迁 QML —— industry 成为整页 QML(Fluent Design 批次 5 完成) (1bb75e0)

  • 引入 QML UI 层基座(Fluent Design,QQuickWidget 渐进嵌入) (b90b74b)

  • 数据初始化向导迁 QML(阶段 4c)+ 接上设置/人物设置/向导三处调用点 (2243520)

  • 机库三对话框(改数量/批量成本价/加物品)迁移到 QML(Fluent Design 阶段 4b-2) (84e3137)

  • 查看核算(成本明细)迁移到 QML(Fluent Design 阶段 4-7) (88a6a1f)

  • 查询链路/工业收尾/设置家族等 20 个对话框迁 QML(阶段 4b+4c+4a 收尾) (227b1d3)

  • 母项下线时清理已完成的子项产线行 (e86f5d0)

  • 物品查询页迁移到 QML(Fluent Design 阶段 3-1) (bb4754e)

  • 研究分析 / 所需蓝图清单迁移到 QML(Fluent Design 阶段 4-4) (3baa4b1)

  • 程序图标(多尺寸 .ico)+ Windows 任务栏身份 (35840d1)

  • 绑定库存蓝图迁移到 QML(Fluent Design 阶段 4-6) (ea00d08)

  • 编辑生产计划对话框迁移到 QML(Fluent Design 阶段 4-1,含对话框宿主) (edf1d1a)

  • 贸易页迁移到 QML(Fluent Design 阶段 3-2) (4bd358b)

  • QML 外壳: 主窗口换成 QQuickWindow —— 页面宿主改为 Item(Fluent Design 批次 6.1) (1fea4ed)

  • QML 迁移: 原生弹窗收敛 + 启动画面迁 QML(批次 7.1 / 7.2 / 7.3) (207b425)

Refactoring ​

  • 对比度工具上移 domain/(纯 hex,去 Qt 依赖)+ 补层次不变量 (1f7437c)

  • QML: 共享层搬出 ui_pyside6 —— ui_qml 不再反向依赖(批次 6.0) (dc87813)

  • QML 迁移: 删掉人物设置页的 Widgets 实现(批次 7.4b) (312f38c)

  • QML 迁移: 删掉整个 ui_pyside6/ + registry 里的 QSS(批次 7.5,迁移收尾) (eed8b00)

  • QML 迁移: 删掉死掉的 Widgets 代码 —— 51 个模块收到 17 个(批次 6.2) (1a8240c)

  • QML 迁移: 控制器去 Widgets 化 + 工业工具窗窗口化 + 退役回退脚手架(批次 7.4) (758ac1e)

  • QML 迁移: 转发器下线 + worker 搬迁 + 陈旧条目清理(批次 7.0) (6403ce5)

v0.21.0 (2026-09-10) ​

Bug Fixes ​

  • 待采购主题跟随 + 三处表格排序保持 + 复制提示/按列复制 + 删除行会话内生效 (690a790)

Features ​

  • 发明/拷贝/研究并入生产计划(解码器 + 完成回填) (5f2e691)

  • 生产生命周期闭环 + 并行产线逐线计算 + 启动小助手筛选/强制启动 (65ac543)

v0.20.0 (2026-09-08) ​

Bug Fixes ​

  • 深度价取价 + 采购小助手独立置顶 + 母项拆解越界 + 默认机库设置丢失 (a853b34)

  • 界面截断与字号自适应整改 + 界面感知工具 (c45d276)

Features ​

  • 待采购对话框双击复制物品名 + 需采购/已备足分栏 + 表头排序 (d30e32e)

  • 日志体系完善 — INFO 落盘 + 崩溃记录补全 + 14 天自动清理 (d247b1c)

v0.19.0 (2026-08-26) ​

Bug Fixes ​

  • 待采购按计划材料机库扣库存 + 复用聚合函数收敛重复实现 (172d64e)

  • 生产计划机库重设保持子项并行/流程 + 绑定丢失修复与自动绑定恢复 (5394ab5)

Features ​

  • 产线小助手复制蓝图名 + 采购/仓库增量粘贴入库 (f4893b9)

  • 计划自审机制 — CLAUDE.md 自检四问 + plan-auditor 第二意见代理 (dda589e)

  • docs: 功能/函数速查基础设施 (a0403aa)

v0.18.1 (2026-08-18) ​

Bug Fixes ​

  • 发行版初始化修复 + 初始化向导交互重设计 + 就绪阈值统一 (f6c73d5)

  • 无边框窗口拖动标题栏概率性抽搐抖动 (306b848)

v0.18.0 (2026-08-17) ​

Features ​

  • 生产规划蓝图绑定/子项联动/共享合并改造 + 修复 (d512b2e)

v0.17.1 (2026-08-17) ​

Bug Fixes ​

  • 修复发行版打包遗漏 bootstrap/domain 包 + terminology 路径错误 (d8095e6)

  • 蓝图绑定交互修复 + 主表格折叠功能 + 子项机库继承 (cdc0ad0)

v0.17.0 (2026-08-16) ​

v0.16.1 (2026-08-16) ​

Bug Fixes ​

  • Clear pre-commit debt left by refactor (format, mypy, docs) (3819680)

v0.16.0 (2026-08-16) ​

Bug Fixes ​

  • Repair 16 tests and cancel semantics broken by recent refactor (1b95a62)

Chores ​

  • Remove compat shims query_view/compare_dialog/inventory_view and update test imports (a29a57b)

Features ​

  • Auto-backup user data before schema migration and version settings.json (5ef6e2b)

Refactoring ​

  • Add APIClient.post and route remaining ESI calls through shared client (e9a7836)

  • Converge all UI direct SQL into services/repositories and sync uv.lock version (8bb9f5f)

  • Extract all-items market browser queries to services/market_browser_service.py (d3ce6d8)

  • Extract contract database queries to services/contract_service.py (8b69ca2)

  • Extract implant data loading to services/implant_loader.py (17cb358)

  • Extract industry page workers to ui_pyside6/workers/industry_page_workers.py (ac50ec6)

  • Extract inventory clipboard parsing and market price batch to services (f4863bd)

  • Extract main window navigation/page registration into MainWindowNavMixin (0f7c575)

  • Extract main window price workers to ui_pyside6/workers/main_window_workers.py (8409324)

  • Extract procurement calculation to services/procurement_service.py (5f5f26c)

  • Fix data integrity, concurrency, layering and tech debt from audit (812fade)

  • Further audit fixes for caches, packaging, hot reload, research cost, icons (2823b7e)

  • Improve QThread parent/strong references and use requestInterruption instead of quit (36ef5fb)

  • Make core.container services imports lazy to reduce import-time coupling (ea0f5b5)

  • Migrate contract fetcher to shared APIClient with global rate limiting (b81626c)

  • Move DI container to bootstrap/ and keep core/container as compatibility shim (323925e)

  • Move industry refresh type-id collection into plan_service (9ba1ee1)

  • Move plan category colors from services to UI theme layer (f5b2c8a)

  • Move procurement loading and price snapshot saving into plan_service (f1eb530)

  • Move production plan loading into plan_service.load_plans (435bb7d)

  • Move refinable filtering into RefiningService (c8d1499)

  • Move scoring facade to services and eliminate services->application dependency (afd7a9b)

  • Move system name lookup to name_resolver service for hangar settings (34a7247)

  • Move targeted price refresh cache/save into services/price_refresh_service.py (6e0eca4)

  • Point internal imports to new UI subpackages, reducing compat shim usage (140d5db)

  • Register price_snapshots DDL in schema_migrations user v10→v11 and remove UI DDL (5f07486)

  • Remove dead application layer and align architecture docs (51618cf)

  • Replace hardcoded UI colors with theme constants (56a79f7)

  • Replace industry page item search/blueprint check with repositories (0119f47)

  • Route child parallel and parent decompose updates through PlanRepository (288967c)

  • Split CharSettingsDialog pages/formulas into char_settings_common and char_settings_pages (fc8e1a3)

  • Split PlanTable delegate and column constants into separate modules (fdb422b)

  • Unify remaining production plan insert paths and add ESI limiter to contract/name calls (2c041d1)

  • Use blueprint repository in query search add-to-plan path (2e6a5e7)

  • Use item repository for market tree queries in blueprint tab (683f8db)

  • Use item repository for score dialog titles (ce3036e)

  • Use item repository in compare chart search/name helpers (6b3ac24)

  • Use item repository in inventory item search dialog (24f3592)

  • Use item repository in watchlist suggestion worker (3b42486)

  • Use market repository batch price query in blueprint tab (a3198e6)

  • Use market repository for main window price age query (92a8d3d)

  • Use market repository in inventory review dialog price operations (560ecf2)

  • Use name resolver service in inventory page system name lookup (08fe92c)

  • Use repositories in batch price dialog queries (bf2b192)

  • Use repositories in hangar paste import dialog (a2b4243)

v0.15.4 (2026-08-15) ​

Performance Improvements ​

  • 初始化全面提速 + 单实例锁健壮化 + dev.py 全新开箱模式 (813b513)

v0.15.3 (2026-08-13) ​

Bug Fixes ​

  • Watchlist_manager _db 函数内 import get_container,避免 mock 污染测试 (45450c5)

Documentation ​

  • 架构重构遗留项清单(4 项高风险/纯风格工作) (1f7a763)

Refactoring ​

  • 4a 拆 estimate_view + all_items_view — model/worker 抽到独立模块 (9e69032)

  • 4a 拆 hangar_tab — 4 个 dialog + 搜索 model 抽到 dialogs/hangar_dialogs (d282c4e)

  • 4a 收尾 contract_view — workers + dialog 抽到独立模块 (749cca6)

  • 4a 第一步 — contract_view 的 3 个 model 抽到 contract_models (da516dd)

  • 4b 下载器统一到 services/importers (5ccfbf9)

  • 4c 收尾 — 删除 4 个死代码 model(Rank/Material/Procurement/Production) (14e31ec)

  • BOM 展开收敛 — 删死代码 + 抽 domain/bom.py walk_bom (a108851)

  • Bom_expander/logistics DI 收敛到容器,修复 TransportWorker 坏调用 (8b6b1ca)

  • 初始化提速与图标修复 + 文档站更新 (fe0c2d6)

  • 架构审计修复与分层收敛 (fc1eaa5)

  • 模型/delegate 分层 — PlanTableModel 展示职责抽到 PlanTableDelegate(4c 第一步) (0ef9e4e)

  • 评分算法纯度化 — calc_manufacturing_score 抽到 domain/application 层 (dc4d014)

  • 评分算法纯度化 — 抽 calc_trade_score / calc_reaction_score 到 domain/application (1ab5f15)

Testing ​

  • 修复 ProductionWizard 测试访问真实库(worktree/CI 无 schema) (d9d0c4e)

  • 精简测试 — 合并重复/删低价值构造测试 + fixture 优化省时 (85e60ad)

v0.15.2 (2026-08-06) ​

Bug Fixes ​

  • 生产计划 int 列排序崩溃(.lower() on int) (bba5ccb)

v0.15.1 (2026-08-05) ​

Bug Fixes ​

  • 批量重算 worker 单条计划计算失败容错,不再崩线程 (01a814f)

  • 生产规划设施/输出列显示机库名 + SCI 过期自动刷新 (8278cc7)

Testing ​

  • 阻止 UI 测试真实价格下载 + 自动清理 MainWindow 残留 (f1b2047)

v0.15.0 (2026-08-05) ​

Bug Fixes ​

  • Dev.py 热重载防连环重启 + 蓝图表连接修正 + schema 检查容错 (6d7b3ea)

  • 图标下载 — 400/404 确定性失败写 noicon,移除限流恢复 100 并发 (ba2daa3)

  • 拆解母项子项按制造价计入成本 + 市场/个人利润率口径分离 (1e2a413)

  • 母项拆解重跑整体刷新 runs/parallels + 预览加需求列 (b5d6f95)

Features ​

  • 新增 setup_worktree.sh 快速初始化 worktree (af8c85b)

Performance Improvements ​

  • 数据初始化下载加速 — 步骤并行调度 + reference.db 并发写锁 + 下载器优化 (a190c2d)

v0.14.2 (2026-08-04) ​

Bug Fixes ​

  • Dev.py 热重载链路修复 + 单实例锁防多开 (#6, 430673b)

v0.14.1 (2026-08-04) ​

Bug Fixes ​

  • 修复 production_plans 缺 v2 扩展列 — 倒计时补算/建计划/完成入库 no such column (415398d)

v0.14.0 (2026-08-03) ​

Features ​

  • 生产规划增强 — 智能调整多行、统计行新统计、流程列改序、自动勾选备料、删除级联子项并释放蓝图、待采购排除子项自制件、母项成本按子项制造价计个人利润、子项并行流程自动生成 (b72c11c)

v0.13.1 (2026-08-03) ​

Bug Fixes ​

  • 制造成本 SCI 按材料机库星系核算,修复空星系回退吉他 (decba62)

v0.13.0 (2026-08-02) ​

Features ​

  • 蓝图批量加入制造规划 + 生产追踪增强 + 库存导入重构 (3658494)

v0.11.0 (2026-08-01) ​

Chores ​

  • docs: 同步 API 文档 + README 测试数 (273719c)

Features ​

  • 生产计划执行服务层 — schema v3→v4、材料校验/扣减/返还、蓝图占用/消耗、启动/完成/撤销 (af7f607)

  • 生产追踪 UI — 材料机库设置、倒计时、蓝图绑定弹窗、完成入库收敛、撤销启动、编辑机库去重 (a344bc0)

Testing ​

  • 生产追踪测试 — 执行/倒计时/迁移/蓝图占用用例 (d629aa6)

v0.10.0 (2026-08-01) ​

Bug Fixes ​

  • Schema 迁移加固 — 缺失表守卫跳过 + v0 库显式落盘版本号 (df8d538)

  • UI 稳定性 — 主题 lambda 监听器强引用、非模态对话框 GC 引用、showEvent 异常兜底、子对话框传 parent (866c122)

  • 初始化流程优化 — check_all 单次轮询、网络检查缓存、inspect 签名检测 progress_cb、结束释放 YAML 缓存、schema 检查跳过不存在库 (94fac59)

Chores ​

  • docs: 同步 API 文档 + README 测试数(663) (2c02420)

Features ​

  • 下载器重构 — 植入体 dogma 改走 ESI 并发拉取、复用共享 SDE zip、ESI 名称并发补拉、进度回调上报 (7cd5b17)

Performance Improvements ​

  • SDE 解析并行化 + YAML 进程内缓存 — universe to_thread 多线程解析、load_yaml 二次解析缓存、clear_yaml_cache 释放大文件内存 (38af496)

v0.9.0 (2026-07-31) ​

Features ​

  • 顶栏/状态栏精简重构 — 价格年龄定时刷新、更新按钮拆分+区域持久化、去重状态栏、分档测试脚本 (7c24921)

v0.8.0 (2026-07-31) ​

Bug Fixes ​

  • 审计 P0 — 精炼查错表、迁移原子性、char_config 反依赖下沉 (79e9128)

  • 审计 P1 — 评分缓存接线、ESI 限流、费用差额计费、busy_timeout 等 10 项 (71006bf)

  • 审计 P1 尾 — theme 监听器弱引用、fetch_time 索引、schema 迁移收敛、删 scheduler (79b93d2)

Chores ​

  • Ruff 格式化存量文件(21 个历史未格式化文件清零) (2452e0a)

  • 清理过期文档与残留文件(-1022 行)+ 修正引用 (bb4909d)

Documentation ​

  • 新增 2026-07-31 审计报告 — 4 P0 + 20 P1 问题清单与修复状态 (49f7a1c)

  • 澄清材料浪费公式误报 + 防错机制落地(字段契约 + 金标准测试) (d410f58)

Features ​

  • 文档联动机制 — 提交时自动生成 API 文档 + README/链接校验 + 变更提醒 (e3015db)

v0.7.0 (2026-07-31) ​

Bug Fixes ​

  • 补 blueprint_tab 蓝图函数 patch,修复 CI 主题监听测试 (4cd4f7b)

v0.6.0 (2026-07-31) ​

Bug Fixes ​

  • 补 hangar_tab 模块 patch,修复 CI 上 inventory 主题监听测试 (452d74b)

v0.5.0 (2026-07-31) ​

Bug Fixes ​

  • 修复 UI 测试依赖真实数据库目录导致 CI(Linux) 失败(patch blueprint_tab get_container) (d5e76f2)

v0.4.0 (2026-07-31) ​

Bug Fixes ​

  • 修复 test_init_check 依赖真实数据库路径导致 CI(Linux) 失败 (4ad8c53)

Chores ​

  • 修复 CHANGELOG 头部被 semantic-release 拆断的结构 (a375571)

Continuous Integration ​

  • 添加 libEGL/libGL 系统库解决 Linux 上 PySide6 导入失败 (0655c94)

v0.3.0 (2026-07-31) ​

Bug Fixes ​

  • CI mypy 平台配置 + PyInstaller 依赖(解决 Linux CI 上 windll 报错与 release 打包缺依赖) (d61349a)

Chores ​

  • 触发文档站部署(GitHub Pages 已启用) (c84a9eb)

v0.2.0 (2026-07-31) ​

Added ​

  • 语义化版本管理:新增 core/version.py 单一版本源;接入 python-semantic-release,push main 自动发版(解析 Conventional Commits → bump 版本 → 更新 CHANGELOG → 打 tag → 建 GitHub Release → 打包上传安装包)
  • CI 版本一致性校验(scripts/check_version.py):core/version.py / CHANGELOG 最新版本段 / git tag 三者不一致即阻断合并
  • VitePress 中文文档站(docs/),函数级 API 参考自动生成(scripts/gen_api_docs.py),GitHub Actions 自动部署到 GitHub Pages

Changed ​

  • 依赖管理统一迁移到 uv:uv sync --dev 安装依赖;移除 requirements.txt 与全部 pip 安装路径
  • build_release.py 版本号改为从 core/version.py 读取,不再硬编码
  • 历史 1.x 版本段降级为归档记录(见下文「历史遗留」)

Removed ​

  • 移除 build_release.py 中已废弃的 pyperclip hidden-import(代码已改用 Qt QApplication.clipboard())

历史遗留(v0.2.0 之前) ​

产品现处于 0.x 开发阶段。以下 1.x 版本段仅作归档,不代表当前版本状态。

v1.4.0 (2026-07-27) ​

架构重构 ​

  • IOC 容器化:AppContainer 统一管理 15+ 服务生命周期,消除模块级全局 DB 单例
  • 新增 core/cache.py:TtlLRUCache 线程安全 LRU+TTL 缓存,替代旧 ScoringCache
  • 新增 services/repositories/:4 个数据仓库(Item/Market/Blueprint/PlanRepository),封装跨库查询
  • 新增 services/pricing_service.py:PricingService 统一定价 + 成交量 + 系统成本指数查询
  • 新增 services/char_config_resolver.py:角色配置四源合并解析器
  • 新增 services/refining_service.py:精炼价值计算独立服务
  • 新增 services/bom_expander.py BomExpander / services/logistics.py LogisticsService 等 6 个可注入服务类
  • services/scoring_service.py 瘦身:972 行 → 536 行,移除 437 行死代码(ScoringCache、模块级缓存函数、resolve_char_config、get_price 等迁移到新模块)

安装费修复 ​

  • 安装费改为读取 ESI adjusted_price(7 日均价)计算 EIV,而非市场实时卖出价
  • 系统成本指数(SCI)降级:system_id=None 时自动从 sell_hub 名称(Jita/Amarr等)查找对应太阳系 ID,使用真实 SCI 值
  • 安装费 breakdown 按游戏类目拆分:system_cost / facility_tax / scc_surcharge / installation_fee

材料损耗公式修正 ​

  • 关键修复:SDE blueprint_materials.quantity 存储的是 ME 0 实际用量(已含基础浪费),旧代码当作「真实基础量」又加了一层浪费
  • 新公式:actual = ceil(db_qty × (1 + wf/100/(1+ME)) / (1 + wf/100) × 结构减免)
  • ME 0 时用量与游戏完全一致,ME 上升时逐步减少

消费者迁移 ​

  • 4 个 UI Worker → 通过容器注入服务,不再模块级引用
  • 8 个 UI View → 改用容器 + TtlLRUCache
  • 2 个 Service 文件 → PricingService 替代模块级 get_price
  • 6 个测试文件 → 更新 mock 路径与断言

测试 ​

  • 653 测试全部通过,0 失败 0 错误
  • 测试基础设施改进:conftest.py 修复 18 个 UI 测试 RuntimeError

新功能 ​

  • 生产计划管理:计划表编辑、甘特图视图、多计划切换(Phase 3)
  • 精炼计算:矿物精炼产出与效率计算(Phase 3)
  • 设置对话框:应用设置集中管理界面(Phase 3)
  • Universe 数据缓存:SDE 星系/空间站数据缓存加速(Phase 3)
  • 甘特图主题:生产进度可视化与双主题适配(Phase 3)

Bug 修复 ​

  • 修复工业界面 5 个问题:SpinBox 重叠、ComboBox 主题/Hub 中文名、蓝图等级参与计算、角色技能读取、制造时长未生效
  • 修复待采购弹窗图标/矿物名/窄高尺寸/InputDialog 关键字
  • BSD YAML 列表格式 station 数据写入
  • 状态栏显示具体哪项数据未初始化便于诊断
  • 移除 universe 检查避免每次提示初始化
  • SDE zip 文件名映射 + universe 路径解析 + operationServices 不存在修复

性能优化 ​

  • SDE zip 共享缓存加速多 Worker 并行导入
  • 全量 SDE 数据集成(三人团队并行实施)

代码质量 ​

  • mypy 类型警告修复、测试基础设施改进
  • 过滤 Qt 字体大小警告

v1.2.0 (2026-07-01) ​

新功能 ​

  • 价格走势图:订单弹窗→走势图按钮,历史价格趋势可视化(Wave 2)
  • 批量导出 CSV/Excel:查询页、全物品浏览页均支持导出(Wave 0-1)
  • 代采购管理:IndustryPage 新增第4Tab,管理代采购订单与供应商(Wave 3-4)
  • 价格变化自动检测:关注列表 60s 定时器,自动检测价格变动并通知(Wave 3-4)
  • 合同视图:查看和管理游戏内合同(Wave 6-7)
  • 物流距离计算:自动计算并补全物流距离数据(Wave 6)
  • 系统通知:集成系统桌面通知(Wave 7)

Bug 修复 ​

  • 修复启动时忽略自动更新设置的 bug
  • 修复主题架构 — 从 from import VAR 改为 import theme as module
  • 修复多项 UI 颜色与样式问题
  • 数据库初始化流程修复

代码质量 ​

  • 安全修复 + 依赖注入 + 测试基础设施重构(第一阶段)
  • UI 拆分 + 依赖注入消除 + DB 清理(第二、三阶段)
  • 配色规范化,双主题支持全面强化
  • 项目结构清理:移除废弃文档、.vscode/、.github/、缓存文件
  • 引入 ruff 作为统一 lint/format 工具(pyproject.toml 配置)
  • 所有视图添加 add_theme_listener + _on_theme_changed 模式
  • AGENTS.md 替代废弃的 PROMPT.md
  • 设计文档精简为 4 篇核心文档

测试 ​

  • 测试总数从约 50 增加到 204 个
  • 新增测试文件:
    • test_contract_view.py — 492 行,合同视图功能测试
    • test_logistics.py — 537 行,物流距离计算测试
    • test_watchlist_manager.py — 285 行,关注列表与价格变化检测测试
    • test_procurement.py — 182 行,代采购管理测试
    • test_price_history.py — 180 行,价格走势图数据测试
    • test_export_helper.py — 104 行,批量导出测试
    • test_scoring_core.py — 评分核心逻辑测试
    • test_theme_listeners.py — 主题监听模式测试
    • test_database_manager.py — 数据库连接管理器测试
    • test_paths.py — 路径管理测试
  • 新增 conftest.py 共享测试 fixtures