Skip to content

Improve the tool efficiency and other fixes.

Latest

Choose a tag to compare

@paul356 paul356 released this 08 Sep 04:16
605c4f9

⚠ Breaking change — version tooling replaced (from #121)

The per-file version tools are removed:
save_file_version / list_file_versions / restore_file_version are gone.
They are replaced by the project-level tools save_project_version /
list_project_versions / restore_project_version, which archive the
schematic + PCB + .kicad_pro together under one version id.

Impact for users:

  • Any workflow calling the old per-file tools must switch to the project
    tools (same calls, but a project_file argument and project-wide
    granularity instead of file_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_pro together 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_properties accept items[]/references[] batches; list_footprints gains ref_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, project fp-lib-table export, pcb_footprint_utils
  • #113 — backlog housekeeping (7c35c55): backlogs consolidated into docs/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_tools
  • kcaa/utils/: version_manager, footprint_database, footprint_index_manager, fp_lib_table_utils, pcb_footprint_utils, pcb_library_utils
  • kcaa/server.py
  • kicad_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

中文说明

发布 developmain 的合并版本,共 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_propertyset_footprint_positionset_footprint_propertyget_footprintget_footprint_bboxlist_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_tools
  • kcaa/utils/:version_manager、footprint_database、footprint_index_manager、fp_lib_table_utils、pcb_footprint_utils、pcb_library_utils
  • kcaa/server.py
  • kicad_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.tomluv.lock.gitignore