docs(plan): P2 Task 2 勾选
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -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 分流)`
|
||||
|
||||
Reference in New Issue
Block a user