From 6eb5fa6dda6c769bb7cad7dbdf43f98f15a67680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E5=BF=B5?= Date: Wed, 21 Oct 2026 08:41:17 +0800 Subject: [PATCH] =?UTF-8?q?docs(plan):=20P2=20Task=202=20=E5=8B=BE?= =?UTF-8?q?=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Code --- docs/superpowers/plans/2026-10-20-slice-wxr-adapter-phase2.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/superpowers/plans/2026-10-20-slice-wxr-adapter-phase2.md b/docs/superpowers/plans/2026-10-20-slice-wxr-adapter-phase2.md index 7765d42..816b564 100644 --- a/docs/superpowers/plans/2026-10-20-slice-wxr-adapter-phase2.md +++ b/docs/superpowers/plans/2026-10-20-slice-wxr-adapter-phase2.md @@ -50,7 +50,7 @@ cms-one/ - [ ] Step 2 实现 `WxrLimits` 接口 + `DEFAULT_WXR_LIMITS` 常量(as const)+ 类型锁(照 contracts 单源派生先例锁值域) - [ ] Step 3 绿 → commit `feat(adapter-wp): 包骨架与限额契约` -### Task 2: PHP unserialize 受限解析器 +### Task 2: PHP unserialize 受限解析器 ✅ 完成(5550952 + 修复 4f90b63,双审通过;108 测试;**实施者纠正了计划中 UTF-8/UTF-16 等价性的错误前提**(CJK 数据源会全军覆没),按字节宽度正确实现并测试钉死;审查修复:phpValueToJson 防 Map JSON 陷阱、错误摘录、PhpError 基类) **Files:** Create `src/parse/php-unserialize.ts`;Test `test/php-unserialize.test.ts` @@ -89,6 +89,7 @@ cms-one/ - nav_menu_item / wpcf7_contact_form / elementor_library / wp_navigation → **UnsupportedResult**(带类型与原因),不产 UniversalRow - **canonical status 值域**:publish/draft/future/pending/private/trash/inherit → 原样;未知值 → 'unknown' + issue(测试钉死映射表) - **property 断言**:每条产出 row 的 sourceId/sourceType 非空字符串、taxonomyRefs/attachmentRefs 元素形状合法、rawLocation 存在 + - **Task 2 审查移交的补测**:d: 作数组键拒绝、s: 内容含 NUL、数字串键 s:1:"0" 形状归属(→Map)、1MB 性能烟雾(防 O(n²) 回归) - 注:publishedAt/modifiedAt/title 本阶段留在 knownFields(UniversalRow 顶层提升是阶段 3 导入映射的事,有意不提前) - [ ] Step 2 实现 `mapItem(item, config): MappedResult`(config: 类型路由表 {post:'wp:post', page:'wp:page', product:'wp:product', attachment:'wp:attachment'} + site locale)——纯函数 - [ ] Step 3 绿 → commit `feat(adapter-wp): WXR→UniversalRow 映射器(status 值域/悬空保留/unsupported 分流)`