浅念
|
c8a2ed81e5
|
docs(plan): P3 Task 4 勾选 + Task 7 度量口径
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-21 18:56:44 +08:00 |
|
浅念
|
99c07906cd
|
docs(plan): P3 Task 3 勾选 + Task 6 编排义务六项
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-21 18:20:08 +08:00 |
|
浅念
|
24220c5ee9
|
docs(plan): P3 Task 2 勾选
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-21 16:50:12 +08:00 |
|
浅念
|
2d57c3c814
|
docs(plan): P3 Task 1 勾选
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-21 16:00:14 +08:00 |
|
浅念
|
eb188da5c2
|
fix(import): 复用口径忠实化;管道 Outcome 契约与 succeeded_with_issues;报告写入时序;stale 警告
评审修复(Plan 3 Task 1 复审):
- 复用路径只返回 job 锚定字段(jobId/status/reused/siteId/mapping_version/
report_path),快照/版本块仅在非复用时解析返回——复用结果不再回显编造数据
- ImportPipeline 契约钉死:返回 Promise<ImportPipelineOutcome>
({ counts, issues });服务按"累加器 ⊕ 返回值"合并(counts 同键返回值
覆盖、issues 累加器在前),issues 非空 → succeeded_with_issues;
ctx.report 即累加器(管道抛错时部分产出仍入报告)
- 报告时序:mkdir + tmp 写入 + rename 先于终态行更新——report_path 落库
即文件存在;写失败 → failed(REPORT_WRITE_FAILED),不挂悬空路径
- CLI 复用命中非终态(queued/running)→ 崩溃残留警告(重试需显式换 --key)
- 管道抛 ImportError 保留原 code 入 error_code,summary 冠 [pipeline]
- 确定性 23505 探针:未提交孪生 job 行事务内持唯一键触发真实 PG 唯一
冲突 → 败者复用既有 job
- 报告补 idempotencyKey / attempt 字段
- 计划文档 Task 6 增补 stale 回收决策项(ADR-017)
测试 282 通过(279 + 3:Outcome 合并/ImportError 前缀/23505 探针);
typecheck 四段链 + lint 全绿。
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-21 15:56:00 +08:00 |
|
浅念
|
0e8b2b5356
|
feat(import): job 骨架与生命周期
Plan 3 Task 1:sf import 命令骨架 + import_jobs 生命周期(空管道,Task 6 接真实管道)。
- import.service.ts(零装饰器):createImportJob——站点/快照解析(缺省按 (connection,
kind='wxr') 选最新;三快照绑定按前置事实 13 记入报告,job 行不扩列)、幂等建行
(默认 key=site+wxr快照+三语义版本;重复提交复用既有 job 不重跑,并发撞唯一约束
重查收敛)、状态推进 queued→running→succeeded/failed(attempt/started_at/finished_at/
error_code/error_summary)、报告落 artifacts/import/<jobId>/reports/import.json
(全四版本块:adapter/mapping/sanitizer/parser;job 行落 mapping_version)
- 可预期错误带 code:SITE_NOT_FOUND / SNAPSHOT_NOT_FOUND / NO_WXR_SNAPSHOT /
PIPELINE_FAILED——解析期失败零 job 行
- adapter 事件加法式补 postId(前置事实 12):unsupported/error 事件可选携带
String(postId),缺失时键缺席不硬造 source_id;row 事件与报告聚合零影响、不触发版本 bump
- canonicalJson 提取至 apps/api/src/common/canonical.ts 共享导出(前置事实 6),
register 侧改 import 零行为变更(既有清单哈希测试守护)
- sf CLI + import 命令(--site/--snapshot/--key/--connection),输出 job 摘要与版本块
- 测试:tests/integration/import-job.test.ts(5 例:生命周期观察/最新快照解析/幂等复用
与并发收敛/可预期失败零落行/failed 路径)+ adapter postId 3 例 + canonical 单测 6 例
(265→279 全绿);typecheck 四段链/lint 绿;临时库 CLI 冒烟(register→import→复用)通过
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-21 15:30:42 +08:00 |
|
浅念
|
e52a2eb3e4
|
docs(plan): P3 Task 0 勾选
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-21 15:13:09 +08:00 |
|
浅念
|
9937f76856
|
docs(plan): Plan 3 定稿——Task 1 补 adapter 扩展提示
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-21 14:19:51 +08:00 |
|
浅念
|
9233f1ce5d
|
docs(plan): Plan 3 终审收尾——unsupported 事件加法补 postId、product-tag 同步、Task0 SQL 过滤、措辞统一
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-21 14:17:56 +08:00 |
|
浅念
|
4f6d50a7ae
|
docs(plan): Plan 3 复审两 minor+五建议——status 入 checksum 域、unsupported 也写 source_records(1122)、三快照绑定语义、product-tag 勘误、permalink 措辞
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-21 14:15:40 +08:00 |
|
浅念
|
d392370fda
|
docs(plan): Plan 3 修复评审两 P0+四项——媒体映射侧车(真实数据实证扁平目录零命中)、checksum 输入域钉死(排 rawLocation)、attachment 降级 301、站点路径来源、悬空引用用例、§6.1 全行覆盖、locale 接缝、计数勘误
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-21 14:10:36 +08:00 |
|
浅念
|
664aade131
|
docs(plan): Plan 3 实施计划——阶段3 内容导入管道(8任务)
Co-Authored-By: Claude Code <noreply@anthropic.com>
|
2026-10-21 14:00:09 +08:00 |
|