diff --git a/.agents/skills/easyeda-agent/SKILL.md b/.agents/skills/easyeda-agent/SKILL.md index 00e3026d1..19d7e66af 100644 --- a/.agents/skills/easyeda-agent/SKILL.md +++ b/.agents/skills/easyeda-agent/SKILL.md @@ -4,7 +4,7 @@ description: "通过本地 easyeda CLI、daemon 和连接器操作嘉立创EDA license: MIT metadata: author: zhoushoujianwork - version: "1.15.0" + version: "1.16.0" homepage: "https://github.com/zhoushoujianwork/easyeda-agent" --- diff --git a/docs/releases/evidence/v1.16.0/baseline.md b/docs/releases/evidence/v1.16.0/baseline.md new file mode 100644 index 000000000..3ff4a1816 --- /dev/null +++ b/docs/releases/evidence/v1.16.0/baseline.md @@ -0,0 +1,49 @@ +# v1.16.0 有限专项验收基准 + +## 原始需求与范围 + +本版从已发布 v1.15.0 到 origin/main a0aa9620 的已合并改动准备,不纳入本地 dev 的其他开发提交。 +用户于 2026-10-31 在确认建议版本 v1.16.0 后要求开始准备。 +用户在收到“按本轮修复专项验收、完整小板 E2E 留待后续,并允许只读独立 Agent 复核”的明确方案后, +于 2026-10-31 回复“开始提交吧”,确认本版采用该方案。使用 schema 3:cli-fixes, +full-design-e2e 延至 follow-up;这项范围决定绑定 v1.16.0,不沿用旧版批准。 + +用户本轮 CBB 需求为 Type-C 接口、CC1/CC2 各一只 5.1kΩ 下拉到 GND,加 KEY-GND 按钮, +做成原生复用模块。KEY 需要外部上拉;未多加第三只电阻,不声称完整 USB/PD 电路或硬件验收。 +专项已有证据保留源电路、真实 block_symbol、外部端口连线、保存关闭重开与新回读。 + +## 候选与环境 + +候选以 a0aa9620 为基底,CLI/daemon、connector/npm/lock 与 Skill 同步 1.16.0。 +正式运行时代码与最近的 v1.15.1-dev.23 现场候选逐文件一致,1043 个 internal/extension/src 文件 +路径集合与字节均相同;版本声明、changelog 和发布材料变化单独记录。 +候选固定在独立工作树,二进制放在 PATH 之外,避免其他 dev 构建覆盖。 +共享 EDA daemon 和其他工程不参与本轮写入;不把在线状态当作设计验收。 + +## 判据 + +- 自动测试、typecheck/build、vet、Skill/发布脚本检查通过,固定源码与二进制身份可追溯。 +- 现场证据绑定精确工程/文档/对象;写入后有布尔 saved:true、真实关闭重开及新回读。 +- CBB 端口已接网名正确,未接端口明确无网,普通器件检查不被块实例特殊路径掩盖。 +- ARC 铺铜保留原生弧语义、实际生成铜,非法轮廓拒绝且不新增铜皮。 +- 制造文件与官方 getter 的字节/哈希、板语义身份和实际内容匹配,不声称制造适用性。 +- 有限专项验收 pass 要求上述专项证据与源码关系经独立复核;不代表发布准备已经完成。 +- 正式发布前另须完成精确版本的全资产构建、SHA256、安装升级冒烟及相应独立核验; + 这些结果记录在发布验证章节,缺失时不能宣布可发布或已发布。 +- 完整需求到小板成品的 E2E 目前未在本版执行;按本轮确认留待 follow-up,不补签完整设计通过。 + +## 证据归属 + +原始工程身份、日志和测试资产只保留在本地忽略目录,公开报告只记脱敏事实、文件名与哈希。 +旧冻结专项证据不改写,本版通过 source-comparison-to-live-dev23.json 证明源码关系。 + +本次验收是在最终运行时源码逐文件对齐后,复用并独立重核本轮各修复的原始现场证据; +未在 v1.16.0 声明版本的连接器上重新操作 EDA。测试候选与已验 runtime 的关系明确记入报告。 + +## 原始需求来源与哈希 + +来源为本轮用户消息,原始文字逐字如下(UTF-8、无 BOM、无末尾换行参与哈希): + +> 那继续验证这个问题,我们要解决。最简单的,我们把做一个Type C,接两个5.1K欧+按钮电路。那种做成复用模块 + +SHA256:`4ea2ee1bb75055f6137778362a20969a688712ac447b00c7b2a6680a0c64d9a3`。上文的需求叙述是解释,不冒充该原文。 diff --git a/docs/releases/evidence/v1.16.0/manifest.json b/docs/releases/evidence/v1.16.0/manifest.json new file mode 100644 index 000000000..f7f9f72d9 --- /dev/null +++ b/docs/releases/evidence/v1.16.0/manifest.json @@ -0,0 +1,19 @@ +{ + "schemaVersion": 3, + "version": "v1.16.0", + "result": "pass", + "independentReview": "pass", + "sha256": { + "test-report.md": "c6e57a91eb6361fec97858a8e89ae1cf2b9b1720dc18633c04ad59389d962b5a", + "baseline.md": "99adac5c30060bf4c43b0191fc6982cc43285a321620f4cfa48309bc0951efbb", + "test-cases.md": "0ad56bca14d5850ff155f923c52f176cbc251c12e548b8b79d2a54b21abac1be" + }, + "acceptanceScope": "cli-fixes", + "deferredScope": "full-design-e2e", + "deferredUntil": "follow-up", + "scopeDecision": { + "approvedBy": "user", + "version": "v1.16.0", + "date": "2026-10-31" + } +} diff --git a/docs/releases/evidence/v1.16.0/test-cases.md b/docs/releases/evidence/v1.16.0/test-cases.md new file mode 100644 index 000000000..8cef40057 --- /dev/null +++ b/docs/releases/evidence/v1.16.0/test-cases.md @@ -0,0 +1,12 @@ +# v1.16.0 验收用例(cli-fixes) + +| ID | 计划 | 输入、步骤与判据 | +|---|---|---| +| M1 | scoped | 对固定候选运行 Go、Connector、MCP、typecheck/build、vet、发布脚本、agent/Skill 检查;记录日志和退出码,不用旧 CI 代替本轮构建。 | +| F1 | scoped | 核对 Type-C 双 5.1kΩ 按钮模块的真实 block_symbol;两端接线一个未接与三个端口全部接线均须保存重开后网名正确,KEY 关联内部按钮。 | +| F2 | scoped | 核对双 ARC 圆、ARC+L 半圆、混合轮廓和原 points 矩形的持久化原生边界与实际铜;开环与零弧度不写入。 | +| E1 | scoped | 核对官方 Gerber mm/inch、坐标 CSV/XLSX、UTF-16、mm/mil 换算、PCB 身份与文件哈希,明确不含制造验收。 | +| L1 | scoped | 核对 CBB ID 无实例、错误变体、非空符号和 stale 矩形拒绝;图形清理不得改变引脚、polygon 或原工程既有对象。 | +| N1 | scoped | 核对官方 SVG 内嵌静态图、导图审查与布线验收的区分;宿主弹窗通过已有授权处理,未知框不盲目确认,不声称通用自动应答接口。 | +| R1 | scoped | 核对原工程对象保全、专用服务隔离、干净候选及 15 项离线冒烟;发布构建和隔离安装升级另按发布步骤记录,不把准备包当已发布。 | +| E2E | deferred | 用户于本轮确认按 cli-fixes 发布准备,完整 ESP32-S3 最小点灯板端到端留待 follow-up;本版保持 not-run。 | diff --git a/docs/releases/evidence/v1.16.0/test-report.md b/docs/releases/evidence/v1.16.0/test-report.md new file mode 100644 index 000000000..36ac1a7d3 --- /dev/null +++ b/docs/releases/evidence/v1.16.0/test-report.md @@ -0,0 +1,77 @@ +# v1.16.0 有限专项验收报告 + +本版范围为用户本轮确认的 cli-fixes,完整小板 full-design-e2e 留待 follow-up。 +产品源码基底为 origin/main a0aa9620;本版只新增版本元数据和验收材料,不夹带 dev 的其他提交。 +本次重新执行自动测试,并由独立 Agent 从原始现场产物核对各专项;没有在新版本声明的连接器上 +重放 EDA 写入。已冻结的现场源码与本版关系逐项证明,不能据此称任意工程或硬件通过。 + +## 用例结果 + +| ID | 结果 | 回读与证据 | +|---|---|---| +| M1 | pass | 新候选 Go 5829 项/18 包、Connector 1305 项/0 失败、发布脚本 123 项、MCP、typecheck/build、vet 和 agent/Skill 检查全部退出 0;release-v1.16.0/m1-* 保存本轮日志。 | +| F1 | pass | CBB 原始 native-pin-net-acceptance-result.json、canonical-reload.stdout 和 final-single-frame-target-fresh.stdout 证明真实 block_symbol、两接一未接与三端口接线的保存重开;VBUS/GND/KEY 分别读为 VBUS/GND/CBB244_KEY,authoritative-key-port-expanded-audit.stdout 关联内部 SW1。 | +| F2 | pass | ARC 原始 circle/half/mixed/points-create.json 均 verified/poured;after-reload-pours.json 按精确 ID 保留四轮廓,after-reload-copper.json 有四个实际铜,drc.json passed:true/0;负例开环和零 sweep 拒绝且不写入。priorityVerified:false 不外推为优先级验收。 | +| E1 | pass | 制造导出 gerber-final-mm/inch、placement-final-csv/xlsx/mil 的响应与实际字节可核对官方文件 SHA256、板语义哈希、Gerber MM/IN 头、CSV/XLSX 相同字段及 mm/mil 换算;UTF-16 源字节保留不改写。只验导出契约,不验制造适用性。 | +| L1 | pass | source-exact-rectangle-cleanup-once.stdout、source-single-frame-reopen-fresh.stdout 保留三个 pin 和同一 polygon、删除唯一显式矩形并 saved:true;original-pages-preservation.json 及 final-acceptance-assertions.json 对账原页与源电路;ID 无实例、歧义变体、非空目标和 stale 几何负例由当前自动回归覆盖。 | +| N1 | pass | 导图 drawings-from-original/schematic.svg 与原始导出字节相同,drawings-dev2/manifest.json 的六个图源与 spec/文件 SHA256 对应,designAccepted:false 和 PCB review pending 均保留;弹窗只验流程文档与已有 70% 关闭记录,不声称通用自动应答或已点击后来消失的同步框。 | +| R1 | pass | dev23 的冻结清单 527 个文件与本版 1043 个 internal/extension/src 文件集合/字节独立对齐;clean c1770c69 原生二进制 vcs.modified=false,临时目录 15 项离线 CLI 冒烟通过;共享服务未替换,验收范围限于已记录 fixture 保全与候选身份。 | +| E2E | not-run | 用户于本轮确认本版采用 cli-fixes,完整 ESP32-S3 最小点灯板需求到成品 E2E 延后 follow-up;本版没有重新执行全小板设计,也不改变旧未完成结果。 | + +## 现场回读 + +本地原始证据集合如下;公开材料不打包客户/个人工程、凭据或原始私有日志。 + +- CBB:issue244-typec-cbb-20261031-r02。evidence-sha256-final.json 覆盖 527 文件, + 原始 save/reload/close/open 和 fresh 结果保留;最终 strict 检查为 0 findings。 + 三端口连接未改变全局电源旗语义;KEY 需要外部上拉。原生 DRC passed,但仍有三个 + ONENETNAME/SHOWDANDLING advisory,不称完整硬件设计通过。 +- ARC:easyeda-pr287-live。实际执行于独立空 PCB,不使用 cases.json 中计划中的 ceshi 身份 + 代替现场上下文;真实执行身份在各响应中一致。原生返回反向绕行,实际铜及保存重开均保留。 + 数组包装、重复闭合点仍仅离线覆盖;不证明任意板的优先级、回流或制造质量。 +- 制造:issue284-manufacture-20261031。CSV 源数据为宿主原样返回的 UTF-16 表格, + XLSX 字段和单位换算单独核对;单电阻独立 fixture,不称制造/装配验收。 +- 导图:acceptance-pr288-pr289-20261031-r01/r02。原 SVG 字节、内嵌静态标志和六图来源 + 独立对账;原 468 器件白屏与 EP01 成品验收仍未证明已解决。活动页重复打开修复只离线覆盖。 +- 电源布局:issue273-bounded-repair-20261031。两个冻结输入的预算均为 3000 候选, + 修复前失败,修复后 buck/boost 分别 2966/1663 候选成功,路由节点低于 200000; + 当前全量回归覆盖该最小缺陷。本项是离线布局求解契约,现场 EDA not-run,不列为现场通过。 + +本版 source-comparison-to-live-dev23.json 对 1043 个 internal/extension/src 文件路径与 SHA256 +逐项对照、0 差异;独立复核另以 git ls-files cmd pkg extension/config extension/build +go.mod go.sum Makefile 比较 69 个生产/构建文件,也为 0 差异。ARC pcbPourCreate 与 c72542e0 完全相同(独立单元 SHA256 记录在 +arc-handler-source-alignment.json);制造导出和 SHA256 模块与 61412ce4 相同; +导图实现与 1719ccd6 对应现场候选相同。仅凭文件关系不能推定新的未测路径已通过。 + +## 候选构建身份 + +干净原生候选来自 c1770c690703536a4f5aad98cc5f966f38cd8f22,版本串 v1.16.0, +Go 1.26.3 / macOS arm64,vcs.modified=false;SHA256 +`e7158ccaa8b6e46d99540ad3a310054a74b931c8b6619974cf17ef358d067f17`。 +该提交之后的报告修改仅为文档,最终正式资产将重新从完成材料的干净提交构建并单独核验。 +早期 Git worktree 构建没有 VCS stamp,已如实记录,不拿它当上述干净构建。 + +## 独立复核 + +只读独立 Agent 已完成专项复核,结论 pass,仅限 schema 3 声明的 cli-fixes。 +复核者未参与现场写入,直接核对原始文件与当前源码,不依据摘要中的通过标记。 + +- 独立重算 CBB 冻结清单 527 文件全部匹配;1043 个 runtime/internal 文件路径和 SHA256 + 与 dev23 均一致;额外 69 个生产/构建文件也一致。 +- 69 文件按排序后的 `path + NUL + sha256 + LF` 拼接,其整体 SHA256 为 + `cd4a90389291bd2dd8f847a6b84e12bad96400ecaa70f68f541ab6d59fb6c43f`。 +- 从 CBB raw 回执确认已接网、未接对照、内部按钮关联、保存关闭重开和矩形清理保全。 +- ARC 负例前有三个边界,拒绝两个非法输入后只增加 legacy points 的返回 ID; + 重开后四个 ID 恰好相符,实际铜四个且 DRC 0,不把 priorityVerified:false 改成优先级通过。 +- 制造五份文件实字节与官方 SHA256 匹配;mm/inch Gerber 各九层的大小、哈希、MO 单位 + 逐项核验;UTF-16 CSV 与 XLSX 字段相同,mil/mm 坐标换算重算一致。 +- 两套导图各七项 fileHashes 全部一致,designAccepted:false 与三项 PCB review pending 保留。 +- 原生二进制 SHA256、vcs.revision 与 vcs.modified=false 相符;需求原话的 SHA256 独立重算一致。 +- 首轮发现基准缺原始需求哈希、专项 pass 与发布完成条件混淆,均已修正文档后重新核验。 + +此结论不覆盖尚未执行的完整发布构建和安装升级步骤;该部分完成后另做第二阶段核验。 + +## 发布资产与安装验证 + +正式全资产构建与安装升级验证在验收材料通过后继续执行,并单独记录结果; +未打标签、未上传、未发布。PR 通过不等于外部平台的公开包已经更新。 diff --git a/docs/releases/next-release.md b/docs/releases/next-release.md index 9007b9523..83f202bfb 100644 --- a/docs/releases/next-release.md +++ b/docs/releases/next-release.md @@ -1,4 +1,57 @@ -# v1.15.0 发布准备 +# v1.16.0 发布准备 + +候选基于已合并的 `origin/main`(`a0aa9620`),不纳入本地 dev 上的其他开发提交。 +版本元数据与发布说明已准备;本节是准备状态,不是正式发布记录。 + +## 本版范围 + +- 原生 CBB 的官方库查询、身份核对、归档导出、受控符号创建与实际放置; + 按当前工程本地 type 17 符号证明变体,修复展开网表缺席导致的误报,保留真悬空判据。 +- CBB 默认矩形库存与精确清理,保存重开后保留引脚和自定义 polygon。 +- 原生 ARC 铺铜轮廓,及经过实际内容与官方文件哈希核对的 Gerber/坐标文件导出。 +- 官方 SVG 内嵌静态 SVG、PCB 图面审查、批量活动文档读取与密集电源布局求解修复。 +- 宿主弹窗感知与恢复工作流;没有通用自动弹窗应答 CLI。 + +连接器运行时代码相对 v1.15.0 已变化,因此按发布契约递增 minor 至 v1.16.0; +用户需更新连接器才能得到本版行为。CLI/daemon、连接器、npm/lock 与 Skill 使用同一版本。 + +## 验收与发布状态 + +用户于本轮确认 v1.16.0 按 cli-fixes 专项验收,完整小板 full-design-e2e 留待 follow-up; +只读独立 Agent 已重算原始证据与源码对应,专项结论 pass。验收材料见 evidence/v1.16.0。 +不把先前专项通过写成完整小板端到端通过,不把发布回执当作外部平台公开可安装。 +自动检查已通过:Go 5829 项、Connector 1305 项、发布脚本 123 项,另含 MCP、typecheck/build、vet 和 agent/Skill 检查。 +干净 c1770c69 原生候选的 15 项离线 CLI 冒烟通过;标准本地发布构建、全资产校验与隔离安装升级验证均已完成;第二阶段只读独立核验 pass:资产字节、二进制身份、冻结验收包、Skill/连接器、安装脚本与三轮安装结果均独立核对一致。 +尚未打标签、上传或发布;原始记录在本地 release-v1.16.0 证据目录。 + + +## 本地发布资产与安装验证 + +标准 `make release-check VERSION=v1.16.0` 通过。独立干净 clone 基于 +`a5f948b7` 执行 `make release-build VERSION=v1.16.0`,生成五平台 CLI、连接器、 +192 文件 Skill、两种安装脚本、验收包与 checksums 共十一文件。 +十个资产 SHA256 全部匹配,五个二进制 build info 均为同一源码提交、v1.16.0、 +`vcs.modified=false`。其中 macOS arm64 CLI SHA256 为 +`db16f4ffff109973adf7951feb8ca91f4889a6d25b9b724f2fca51113e5a4a4a`。 +完整 `make release-smoke` 通过,包含资产/验收包验证与本机十五项离线 CLI 冒烟。 +其他平台构建完成不等于这些发布二进制已在对应平台运行。 + +原样 `install.sh` 在临时 bin 和临时 Claude Skill 目录执行,未修改 HOME/CODEX_HOME, +没有启动 daemon 或更换系统工具。三轮分别为首次安装 v1.16.0、安装已发布 v1.15.0、 +从该版本升级 v1.16.0;每轮 CLI 实字节与输入资产一致、版本正确,192 个 Skill 文件逐字节 +匹配,升级移除了旧包哨兵文件。v1.15.0 的二进制与 Skill 从 GitHub 下载后先与官方 +checksums 比对;v1.16.0 使用本地候选资产。下载通道为仅允许对应精确 URL 的本地 curl +替身,不把此测试称为尚未发布的 v1.16.0 远端下载或 `easyeda update` 联网升级验收。 + +原始日志与哈希记录保存在本地 release-v1.16.0 中的 release-build.log、release-smoke.log、 +release-assets-identity.json、installer-smoke-result.json 和三次安装日志。 +验收四份材料保持构建时已审核内容,发布包中 test-evidence.zip 与其逐字节对应。 +本节记录的是候选 a5f948b7 的本地资产验证;正式发布须从最终已审阅提交重新构建、 +核验附注标签、远端资产与公开下载,不能把准备完成当成已经发布。 + +--- + +## v1.15.0 发布准备 用户于 2026-10-24 要求按 v1.15.0、有限验收范围准备发布:先修 CI 版本不一致,再写本文、跑现场验收、 独立复核,最后再确认是否执行 `make release`(尚未批准执行)。连接器运行时自 v1.14.0 起有改动(新增 diff --git a/extension/CHANGELOG.md b/extension/CHANGELOG.md index 0fcf0c50a..de4b3baa8 100644 --- a/extension/CHANGELOG.md +++ b/extension/CHANGELOG.md @@ -2,6 +2,15 @@ ## [Unreleased] +## [1.16.0] - 2026-10-31 + +- 原生 CBB:新增官方库搜索、身份核对、归档导出,以及受控个人库样件创建、符号构建与放置;按当前工程目录解析本地 type 17 符号,写后必须回读为真实 block_symbol。修复已接块端口被展开网表缺席误报的问题,保留悬空端口和普通器件检查。 +- CBB 符号库存覆盖默认 Rectangle,拒绝把含图形目标误判为空;提供精确矩形清理入口,核对归属、几何、保留引脚与 polygon 和显式保存。专用 createCbbSymbol 仍可能只返回未落地 ID,支持路径为已验证的官方通用符号创建。 +- PCB 制造导出:新增官方 Gerber/坐标文件导出,绑定导出前后 PCB 身份及官方文件哈希;校验实际内容并正确处理 UTF-16 表格坐标文件,不把文件扩展名或下载成功当作内容有效。 +- 导图与布局:官方 SVG 导出支持经校验的内嵌静态 SVG;区分 PCB 图面审查与布线验收,避免批量检查反复打开活动文档。密集电源布局在冻结候选预算内求解,不放松保护判据。 +- 宿主弹窗:公开 Skill 要求操作后主动检查、已有授权内精确应答、检查下一层提示和迟到写入,再做 typed 数据回读;这是操作流程改进,未新增通用自动弹窗应答 CLI。 +- 发布目标修正为 SkillHub 的公开条目;外部平台的上传回执与公开可下载安装结果分别核验,不把审核中的版本当作已上线。 + - `pcb.pour.create` / `easyeda pcb pour` now accept a closed native `L`/`ARC` polygon `source` as an alternative to `points`. Signed arc sweeps remain native in the pour boundary; exact-ID fresh readback checks segment type, endpoints and sweep (including rotated/reversed encoding) before copper rebuild. Malformed/open paths and mixed inputs fail before mutation. Web 4.1.78 定向现场验证通过:双 ARC 圆、ARC+L 半圆、混合 L/ARC 轮廓及原有 points 矩形均生成实际铜,保存重载后精确 ID 边界与铜对象回读一致,原生 DRC passed:true、0 违例;开环与零弧度输入拒绝且未新增铜皮。宿主实际返回反向轮廓;单轮廓数组包装及重复闭合点仍只有离线回归覆盖。本结论限于独立测试板,不代表完整设计 E2E 或任意板卡验收。 ## [1.15.0] - 2026-10-24 diff --git a/extension/extension.json b/extension/extension.json index 35b278490..9fbab676b 100644 --- a/extension/extension.json +++ b/extension/extension.json @@ -3,7 +3,7 @@ "uuid": "4dae27407c1d43be98e8e210d45fe587", "displayName": "EDA Agent Connector", "description": "Bridges the local agent daemon to the official eda.* API over a local WebSocket, dispatching typed schematic and PCB actions.", - "version": "1.15.0", + "version": "1.16.0", "publisher": "zhoushoujian", "engines": { "eda": "~3.2.0" diff --git a/extension/package-lock.json b/extension/package-lock.json index 2d5e4d0c5..760f94d84 100644 --- a/extension/package-lock.json +++ b/extension/package-lock.json @@ -1,12 +1,12 @@ { "name": "easyeda-agent-connector", - "version": "1.15.0", + "version": "1.16.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "easyeda-agent-connector", - "version": "1.15.0", + "version": "1.16.0", "license": "(MIT AND Apache-2.0)", "devDependencies": { "@jlceda/pro-api-types": "^0.4.25", diff --git a/extension/package.json b/extension/package.json index 646e7d878..4278e902f 100644 --- a/extension/package.json +++ b/extension/package.json @@ -1,6 +1,6 @@ { "name": "easyeda-agent-connector", - "version": "1.15.0", + "version": "1.16.0", "description": "EasyEDA Pro extension that bridges the easyeda-agent Go daemon to the official eda.* API over WebSocket.", "author": "easyeda-agent", "license": "(MIT AND Apache-2.0)",