diff --git a/apps/api/package.json b/apps/api/package.json index 9ee413b..d215bee 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -18,7 +18,7 @@ "rxjs": "^7.8.1" }, "devDependencies": { - "@types/node": "^26.6.5", + "@types/node": "^22", "dotenv": "^18.0.8", "drizzle-kit": "^0.31.11", "typescript": "^5.6.0" diff --git a/docs/superpowers/plans/2026-10-20-slice-foundation-phase0-1.md b/docs/superpowers/plans/2026-10-20-slice-foundation-phase0-1.md index d28f3ed..ed81d70 100644 --- a/docs/superpowers/plans/2026-10-20-slice-foundation-phase0-1.md +++ b/docs/superpowers/plans/2026-10-20-slice-foundation-phase0-1.md @@ -10,6 +10,8 @@ **计划系列说明:** 本计划是切片系列的第 1 份(阶段 0+1)。阶段 2(WXR 适配器)、3(导入管道)、4(发布/快照/主题)、5(门禁/预览)、6(真实 L3 验收)在各自前置完成后另立计划,避免单份计划失控。 +**任务完成状态以各任务标题的 ✅ 注记为准**(含 commit 与审查结论),步骤复选框不逐一勾选。 + **Worktree 说明:** cms-one 是本项目专属新仓库,无并行工作,直接在 `main` 分支实施(不另建 worktree)。 --- @@ -863,6 +865,8 @@ git push origin main - canonical `status` 值域 + 未知 status 的导入兜底策略,钉在适配器转换测试里(契约层 string 宽松是有意设计) - 适配器 property 测试覆盖:`taxonomyRefs`/`attachmentRefs` 元素形状、`sourceId`/`sourceTermId` 非空 - 如需字段级错误报告:**加法式**新增 `validateUniversalRow(): issue[]`,不动现有布尔守卫 +- per-file schema 隔离评估结论(Task 10 移交、Task 13 裁定):**不再需要**——ADR-014 文件串行 + ADR-015 每运行全新临时库已联合消除竞态与污染。 +- Task 0.2 cms 数据备份(用户暂缓)**必须在阶段 6 真实数据 L3 验收前补做**,随计划携带。 ## 验收(对照 spec §15 阶段 0/1) diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 2d64016..233e29e 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -12,7 +12,7 @@ } }, "scripts": { - "build": "tsc -p tsconfig.json", + "build": "tsc -p tsconfig.build.json", "typecheck": "tsc -p tsconfig.json --noEmit" } } diff --git a/packages/contracts/tsconfig.build.json b/packages/contracts/tsconfig.build.json new file mode 100644 index 0000000..d0c16e4 --- /dev/null +++ b/packages/contracts/tsconfig.build.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "rootDir": "." + }, + "exclude": ["test"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 67dfcde..aed8456 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,8 +46,8 @@ importers: version: 7.8.2 devDependencies: '@types/node': - specifier: ^26.6.5 - version: 26.6.5 + specifier: ^22 + version: 22.20.5 dotenv: specifier: ^18.0.8 version: 18.0.8 @@ -902,6 +902,9 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + '@types/node@22.20.5': + resolution: {integrity: sha512-U2+DNr+wSjpsTS/wZGYHq7GcwfuSmKiKvoPvK22zwTlRhU91yOniN4qRR5KhIjvif7ysw/dz/hKmfDH0Ris4aA==} + '@types/node@26.6.5': resolution: {integrity: sha512-uMzsv9stDdofIZBx4UGh4Z9ZgXnGC9seRDscilBcTHAeOFk67MZg/k9bWVfO+bk4qZmG+l52hRnLwUiH2LnJTg==} @@ -1616,6 +1619,9 @@ packages: resolution: {integrity: sha512-8iAasVS4wUx0gPLjH8Xtz2PeDzTSiy8QiLGu2DT3X5GU+egFEQhpnbtkehbAwjvDcxIERmCYcysiODFmE3Ud0Q==} engines: {node: '>=18'} + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + undici-types@8.9.0: resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==} @@ -2205,9 +2211,14 @@ snapshots: '@types/json-schema@7.0.15': {} + '@types/node@22.20.5': + dependencies: + undici-types: 6.21.0 + '@types/node@26.6.5': dependencies: undici-types: 8.9.0 + optional: true '@typescript-eslint/eslint-plugin@8.72.0(@typescript-eslint/parser@8.72.0(eslint@9.39.5)(typescript@5.9.3))(eslint@9.39.5)(typescript@5.9.3)': dependencies: @@ -2925,7 +2936,10 @@ snapshots: uint8array-extras@1.6.0: {} - undici-types@8.9.0: {} + undici-types@6.21.0: {} + + undici-types@8.9.0: + optional: true uri-js@4.4.1: dependencies: diff --git a/tests/integration/helpers.ts b/tests/integration/helpers.ts index 72badec..045974e 100644 --- a/tests/integration/helpers.ts +++ b/tests/integration/helpers.ts @@ -1,6 +1,7 @@ // 集成测试公共夹具(Task 13 收敛):Task 6–12 七个域测试文件的内联重复件抽此共享。 // 收敛纪律:只抽"每个文件逐字重复"的实现——随机后缀、建 site、不可变表清场开关、 // 拒绝断言解包、连接生命周期;各文件的断言、对照组、清场范围与顺序保持不变。 +// 注:各 withXFixture 的 setup 阶段中途失败不清理已插半的行——该盲区已被 ADR-015 临时库整库 DROP 实质中和,属已接受设计。 import { getDb } from '../../apps/api/src/db/client.js' export type Db = ReturnType