更新日志
本项目的版本遵循语义化版本 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
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
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
Features
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
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
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
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
v0.20.0 (2026-09-08)
Bug Fixes
Features
v0.19.0 (2026-08-26)
Bug Fixes
Features
产线小助手复制蓝图名 + 采购/仓库增量粘贴入库 (
f4893b9)计划自审机制 — CLAUDE.md 自检四问 + plan-auditor 第二意见代理 (
dda589e)docs: 功能/函数速查基础设施 (
a0403aa)
v0.18.1 (2026-08-18)
Bug Fixes
v0.18.0 (2026-08-17)
Features
- 生产规划蓝图绑定/子项联动/共享合并改造 + 修复 (
d512b2e)
v0.17.1 (2026-08-17)
Bug Fixes
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
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
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
Documentation
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(代码已改用 QtQApplication.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