log: post-mortem of running --all on the other 4 Pro projects
Captures the two new --all crash paths fixed in 61fd3ff (odd inner
copper layers, duplicate BOARD titles) plus the Pro 2.x scope gap
(Taishan + Liangshan are JSON-format, not EPRO2 streams, so our
replay_project reads the bytes but doc_type stays None and
_group_by_board returns no SCH/PCB groupings — needs a separate
Pro 2.x writer).
Status as of this commit: ESP-VoCat 6 boards + 220V power 7 boards =
13 project dirs ready for downstream corpus. X86 motherboard is the
largest of the five (7374 docs, 1.9 GB RAM in flight) and still
running.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
51
log.md
51
log.md
@@ -4,6 +4,57 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## 2026-04-29 03:00 跑完 5 块 Pro 项目 export,发现并修两个 --all 崩溃路径
|
||||||
|
|
||||||
|
**Claude 会话**
|
||||||
|
|
||||||
|
接 `3c00edf`。给下游同学打包:5 块 Wokwi pipeline 不吃的 Pro 项目(X86主板 / 220V电源 / ESP-VoCat / 泰山派 / 梁山派)跑 `--all` 一键 export。
|
||||||
|
|
||||||
|
### 实战结果
|
||||||
|
|
||||||
|
| 项目 | EPRO2 类型 | --all 结果 | 备注 |
|
||||||
|
|---|---|---|---|
|
||||||
|
| ESP-VoCat | Pro 3.x AES | ✅ 6 boards | 之前已验证 |
|
||||||
|
| 220V 电源 | Pro 3.x AES | ✅ **7 boards** | 修了两个 bug 之后 |
|
||||||
|
| X86 主板 | Pro 3.x AES | ⏳ 跑中 | 7374 docs / 1.9GB RAM;目前 5 boards 出来,CPU 板 PCB 还在写 |
|
||||||
|
| 泰山派 (RK3566) | **Pro 2.x JSON** | ❌ no BOARDs | 我们的 EPRO2 pipeline 不识别 Pro 2.x docType |
|
||||||
|
| 梁山派 | **Pro 2.x JSON** | ❌ no BOARDs | 同上 |
|
||||||
|
|
||||||
|
### 220V 跑出来发现的两个崩溃路径
|
||||||
|
|
||||||
|
#### Bug A: KiCad 拒收奇数铜层数
|
||||||
|
|
||||||
|
```
|
||||||
|
12:45:56 AM: Error: 3 is not a valid layer count in '...kicad_pcb', line 31
|
||||||
|
```
|
||||||
|
|
||||||
|
220V 电源里的板子有 **1 个内层 SIGNAL** 用到(GND 一层),加 F.Cu+B.Cu 总共 3 层。KiCad 8 要求铜层数偶数(2/4/6/...)。修法:奇数时 pad 一个空的 In{N+1}.Cu,总层数凑偶。
|
||||||
|
|
||||||
|
#### Bug B: 同标题 BOARD 互覆盖
|
||||||
|
|
||||||
|
220V 项目里有**两块都叫 "显示板"** 的不同 BOARD(不同 uuid)。我之前的 `--all` 用 title 推 basename,两块争同一个目录,第二块写完就把第一块覆盖。修法:title 撞名时给所有撞名实例都加 BOARD uuid 前 8 位后缀(`显示板_52e8cc76` / `显示板_55d32906`);只一份的还是干净 basename。
|
||||||
|
|
||||||
|
### Pro 2.x 没拿下
|
||||||
|
|
||||||
|
泰山派 / 梁山派的 source 文件是**纯 JSON**(`<uuid>.json`),不是 `.epro2` 二进制流。我们的 `replay_project` 读得了文件但 `doc_type=None`——head 里没 docType 字段,整个识别链路断掉,`_group_by_board` 拿不到 SCH/PCB 分组。
|
||||||
|
|
||||||
|
要补这 2 块得写**单独的 Pro 2.x → KiCad writer**(plaintext dataStr 解析跟 EPRO2 是两套不一样的对象模型;也许能跟 Std json 共用)。本轮范围外。
|
||||||
|
|
||||||
|
### 决策(Why)
|
||||||
|
|
||||||
|
- **基板撞名一律加 uuid**:第一份保 clean basename 的方案有歧义性,"哪个是真的"不可靠。所有撞名一律带 uuid 后缀虽然多两个字符但绝对安全。
|
||||||
|
- **不在 ESP-VoCat 上重跑验证奇数层 fix**:ESP-VoCat 的板要么 2 层(无 inner)要么 4 层(2 inner),不会触发奇数层路径,重跑没意义。
|
||||||
|
|
||||||
|
### 测试
|
||||||
|
|
||||||
|
71 → 73:`test_odd_inner_signal_count_padded_to_even_total` + `test_duplicate_board_titles_get_distinct_basenames`。
|
||||||
|
|
||||||
|
### 下游交付
|
||||||
|
|
||||||
|
ESP-VoCat 6 + 220V 7 = **13 个 board** 项目目录就绪,可以直接拷给下游同学的 corpus。X86 跑完后再加 5 个左右(已知是 ADL_S 平台 motherboard,含 CPU/PCH/USB/PCIe 多板)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 2026-04-29 02:30 KiCad 工程文件 + `--all` 一键导:双击 .kicad_pro 打开 GUI
|
## 2026-04-29 02:30 KiCad 工程文件 + `--all` 一键导:双击 .kicad_pro 打开 GUI
|
||||||
|
|
||||||
**Claude 会话**
|
**Claude 会话**
|
||||||
|
|||||||
Reference in New Issue
Block a user