⚠ Breaking change — version tooling replaced (from #121)
The per-file version tools are removed:
save_file_version/list_file_versions/restore_file_versionare gone.
They are replaced by the project-level toolssave_project_version/
list_project_versions/restore_project_version, which archive the
schematic + PCB +.kicad_protogether under one version id.Impact for users:
- Any workflow calling the old per-file tools must switch to the project
tools (same calls, but aproject_fileargument and project-wide
granularity instead offile_path).- Old
.versions/<basename>.<timestamp>snapshots written by the removed
tools are no longer readable by any tool; the files are left on
disk, but only new.versions/project/archives are usable.- Automatic saving is now framework-managed: before a mutating edit the
framework snapshots the whole project once (deduped per turn) — no
manual snapshot needed.
What
Merge develop into main, shipping 7 commits (5 features, 2 fixes, 1 backlog housekeeping):
- #121 — unify schematic/PCB/project version management (
ea96768): three project-level version tools (save_project_version/list_project_versions/restore_project_version) archive schematic+PCB+.kicad_protogether under one version id; the legacy per-file tools and their framework auto-snapshot/rollback wiring are removed - #119 — batch set_/get_ tools; simplify list filters (
303b717):set_symbol_property,set_footprint_position,set_footprint_property,get_footprint,get_footprint_bbox,list_symbol_propertiesacceptitems[]/references[]batches;list_footprintsgainsref_prefix - #118 — fix(plugin): keep tool-call details ids unique across session restores (
77a4e83) - #116 — feat(project): expose project layout via
get_project_structure(e80aac8) - #115 — fix(wire): avoid label/junction anchors when routing wires (
991e59f) - #105 — feat(pcb-library): find and export missing footprints to 3rdparty libraries (
0306914): footprint database/index sources, projectfp-lib-tableexport,pcb_footprint_utils - #113 — backlog housekeeping (
7c35c55): backlogs consolidated intodocs/develop_backlog.md
Files
kcaa/tools/: version_tools, pcb_edit_tools, pcb_placement_tools, pcb_query_tools, symbol_edit_tools, wire_edit_tools, project_tools, sheet_tools, pcb_library_toolskcaa/utils/: version_manager, footprint_database, footprint_index_manager, fp_lib_table_utils, pcb_footprint_utils, pcb_library_utilskcaa/server.pykicad_plugin/: llm_client, tool_registry, ui/panel, ui/stream_events, ui/shell.js, skills/*docs/: develop_backlog, README, README_CN, plugin/capability_inventory, plugin/tool_contract- tests: unit + integration suites across the above
pyproject.toml,uv.lock,.gitignore
中文说明
发布 develop → main 的合并版本,共 7 个提交(5 个新特性、2 个修复、1 个 backlog 整理)。
⚠ 破坏性变更:版本工具替换(来自 #121)
单文件版本工具已删除:save_file_version / list_file_versions / restore_file_version 已移除,由项目级工具 save_project_version / list_project_versions / restore_project_version 取代——将原理图(.kicad_sch)+ PCB(.kicad_pcb)+ 项目文件(.kicad_pro)打包为同一版本号的整体归档。
对用户的影响:
- 旧的工作流需改用项目级工具(调用方式类似,但参数由
file_path改为project_file,粒度变成整个项目)。 - 旧工具生成的
.versions/<文件名>.<时间戳>快照不再可读;文件保留在磁盘上,但只有新的.versions/project/归档可被使用。 - 自动保存改由框架接管:每次修改前框架对整个项目做一次快照(每轮去重),无需手动调用。
变更内容
- #121 — 统一原理图/PCB/项目版本管理(
ea96768):新增三个项目级版本工具;删除旧单文件工具及其框架自动快照/回滚接线 - #119 — set_/get_ 工具批量支持;精简 list 过滤(
303b717):set_symbol_property、set_footprint_position、set_footprint_property、get_footprint、get_footprint_bbox、list_symbol_properties支持items[]/references[]批量参数;list_footprints新增ref_prefix行过滤 - #118 — 修复:会话恢复后 tool-call 详情 id 保持唯一(
77a4e83) - #116 — 新特性:通过
get_project_structure暴露项目结构(e80aac8) - #115 — 修复:布线时避开标签/节点锚点(
991e59f) - #105 — 新特性:PCB 库缺失封装查找并导出到 3rdparty 库(
0306914):封装数据库/索引来源、项目fp-lib-table导出、pcb_footprint_utils - #113 — backlog 整理(
7c35c55):backlog 统一合并进docs/develop_backlog.md
涉及文件
kcaa/tools/:version_tools、pcb_edit_tools、pcb_placement_tools、pcb_query_tools、symbol_edit_tools、wire_edit_tools、project_tools、sheet_tools、pcb_library_toolskcaa/utils/:version_manager、footprint_database、footprint_index_manager、fp_lib_table_utils、pcb_footprint_utils、pcb_library_utilskcaa/server.pykicad_plugin/:llm_client、tool_registry、ui/panel、ui/stream_events、ui/shell.js、skills/*docs/:develop_backlog、README、README_CN、plugin/capability_inventory、plugin/tool_contract- 测试:上述模块对应的单元 + 集成测试
pyproject.toml、uv.lock、.gitignore