Skip to content

2026-07-08 内置 Nitro 服务退役就绪报告

变更:OpenSpec change migrate-superpowers-docs-to-openspec-longtask
编写日期:2026-07-08
编写人:Claude Code (ZCode agent)
版本:dev 分支,commit 0b849db1


1. 执行摘要

本报告记录 apps/admin/server(后台内置 Nitro)和 apps/app/server(App 内置 Nitro)两套内置服务端点目录的退役执行状态。核心结论:

目录状态说明
apps/app/server/**已物理删除§7B 退役完成,CI 流水线已适配
apps/admin/server/**delete-candidate隔离 dry-run 验证通过,待生产 Network 证据后删除

当前是否已安全删除旧内置 Nitro: 部分完成。apps/app/server 已物理删除;apps/admin/server 需完成生产验证门禁后才可删除。


2. 已完成工作

2.1 §7B — App 内置 Nitro 退役(✅ 完成)

  • [x] apps/app/server/** 已物理删除
  • [x] apps/app/server 目录重命名 + 回滚 dry-run 通过
  • [x] apps/app/package.json 移除 dev:h5-nitro/dev:mp-nitro/dev:h5/dev:mp 四个 Nitro 脚本
  • [x] apps/app/README.md/CLAUDE.md/AGENTS.md/GEMINI.md 更新 API 地址说明,统一指向 https://01s-11-server.ruan-cat.com
  • [x] 测试目录 src/tests/nitro-runtime/ 重命名为 src/tests/runtime-base/
  • [x] .github/workflows/app-ci.yml 适配新测试路径并移除 Nitro 构建步骤
  • [x] apps/app/src/http/runtime-base.ts shadow allowlist 覆盖全部 20+ app legacy 模块
  • [x] 隔离 dry-run 验证:删除 apps/app/server 后 typecheck/build/Vitest 通过(Vue 自动导入缺失为 pre-existing 问题)
  • [x] apps/apilegacy-dispatch-fallback-drill.test.ts 验证 fallback 兜底
  • [x] apps/apilegacy-nitro-config-retirement.test.ts 验证 Nitro config 已不在引用

边界:本任务只完成 apps/app/server 目录级删除候选和 CI 适配,不代表 fallback-only 路径已清零、task438/task439 闭合、task1209 R2 drill 完成或 apps/admin/server 删除许可。

2.2 §7C — API fallback-only 收口(✅ 完成)

  • [x] 新增 oa-workflow legacy module:覆盖 /app/oaWorkflow.* 路径
  • [x] 新增 renovation legacy module:覆盖 /app/renovation.* 路径
  • [x] 修改 property-application legacy module:覆盖 /app/propertyApplication.* 路径
  • [x] 修改 repair legacy module:覆盖 /app/repair.* 路径
  • [x] 修改 resource legacy module:覆盖 /app/resourceStore.*/app/resourceStoreType.* 路径
  • [x] 修改 staff legacy module:覆盖 /app/staff.* 路径
  • [x] runtime-endpoints.ts 扩展 manifest,增加 phase7-oa-workflow-readonlyphase7-renovation-readonly 等新 phase 标记
  • [x] 共享文件合并:确认 apps/api/server/shared/ 下无与 apps/admin/server 共享的代码;apps/app/server 已物理删除,共享文件归入 apps/api
  • [x] 关键 legacy endpoint 测试文件更新:property-application/repair/resource/staff-legacy-endpoints.test.ts

边界:本任务只完成 fallback-only 路径收敛,不代表 DB_READY、写入闭环、真实库样本或旧服务退役。

2.3 §7D — 非生产配置核对(✅ 完成)

  • [x] apps/admin/package.json#homepage = https://01s-11comm.ruan-cat.com
  • [x] apps/app/package.json#homepage = https://01s-11-app.ruan-cat.com
  • [x] apps/api/package.json#homepage = https://01s-11-server.ruan-cat.com
  • [x] apps/admin/.env.productionVITE_11COMM_API_BASE_URL=https://01s-11-server.ruan-cat.com
  • [x] apps/app/env/.env.productionVITE_11COMM_API_BASE_URL=https://01s-11-server.ruan-cat.com

2.4 §7E — Admin server 隔离 dry-run(✅ 完成)

  • [x] 隔离 worktree task1132-admin-server-dryrun 中将 apps/admin/server 重命名为 apps/admin/server.__retirement_dryrun__
  • [x] 引用扫描:运行时代码(apps/admin/srcapps/apiapps/app/src)无 apps/admin/server 活动依赖
  • [x] pnpm -F @01s-11comm/admin build:prod 通过(生成 types/auto-imports.d.ts
  • [x] pnpm -F @01s-11comm/admin run typecheck 通过
  • [x] admin 关键测试:3 files / 35 tests passed
  • [x] apps/api 退役验证:2 files / 4 tests passed
  • [x] apps/app runtime-base 测试:117 tests passed
  • [x] 回滚通过 git mv 恢复目录名
  • [x] retirement-evidence-matrix.md 更新:apps/admin/server 升级为 delete-candidate

边界:只确认目录级删除候选,不代表可立即物理删除;物理删除前需完成用户/独立 OpenSpec 评审。

2.5 生产 DB_READY 验证(✅ 通过)

通过 apps/api/.output/server/index.mjs 生产构建产物验证:

json
{
  "success": true,
  "ready": true,
  "code": "DB_READY",
  "checks": {
    "database": {
      "configured": true,
      "connected": true,
      "probeEnabled": true,
      "schema": {
        "requiredTables": ["cm_communities", "ex_expense_items", "ex_house_charges", "hp_houses", "rpt_expense_summaries", "rpt_payment_details", "ct_upload_sessions", "ct_upload_session_parts"],
        "requiredTablesPresent": true,
        "missingTables": []
      },
      "migrations": {
        "tablePresent": true,
        "appliedCount": 2,
        "expectedAppliedCount": 2,
        "upToDate": true
      }
    },
    "r2": {
      "requiredKeys": ["R2_ENDPOINT", "R2_BUCKET", "R2_ACCESS_KEY_ID", "R2_SECRET_ACCESS_KEY", "R2_PUBLIC_BASE_URL"],
      "configured": true,
      "missingKeys": []
    }
  }
}

3. 验证命令汇总

命令结果
openspec validate migrate-superpowers-docs-to-openspec-longtask --strict✅ 通过
openspec instructions apply --change migrate-superpowers-docs-to-openspec-longtask --jsonisComplete: true,无 CRITICAL
git diff --check / git diff --cached --check✅ 通过
pnpm -F @01s-11comm/api run typecheck✅ 通过
pnpm -F @01s-11comm/api exec vitest run tests/legacy/ tests/runtime/ tests/infra/...✅ 36 files / 808 tests
pnpm -F @01s-11comm/app exec vitest run src/tests/runtime-base/runtime-base-url.test.ts✅ 117 tests
pnpm -F @01s-11comm/api exec vitest run tests/infra/legacy-nitro-config-retirement.test.ts✅ 2 tests

4. 剩余风险与未关闭项

4.1 BLOCKED — 需用户介入

项目任务编号阻断原因
task1209 R2/upload 真实环境演练1210需 R2 凭证或 live bucket access
admin production Network 验证1309需浏览器/Chrome MCP/用户操作
app production Network 验证1310需浏览器/Chrome MCP/用户操作
shadow-off drill1311需用户授权临时修改生产 env
apps/admin/server/** 最终删除1321需 §7D 生产证据全部通过
apps/app/server/** 最终删除目录已删除,需 fallback-only 清零 + 生产证据

4.2 残留风险

  1. fallback-only 未清零apps/api 仍存在部分 fallback-only 注册路径(resourceStoreType.listResourceStoreTypes 等),需继续收敛。
  2. task438/task439 未闭合:App legacy 迁移任务仍 open。
  3. 写入闭环缺口:guarded exact 写入口(auditApplyOrderauditUndoItemReleaseupdateLikeupdateCollect 等)无受控写入窗口、read-back、rollback 或 residual check 证据。
  4. Windows dev gotchaapps/api dev mode 在 Windows 下因 AWS SDK ESM loader 解析问题无法加载 @aws-sdk/client-s3;生产 build 使用 node-server preset 无此问题。

4.3 回滚路径

若需回滚本变更(不推荐,已推送),执行顺序:

  1. git revert <commit> 逐个回退 10 个 commit
  2. 重建 apps/app/server 目录(从 git history 恢复)
  3. 恢复 apps/app/package.json 中的 Nitro 脚本
  4. 恢复 .github/workflows/app-ci.yml 中的 Nitro 构建步骤
  5. 恢复测试目录名 runtime-basenitro-runtime
  6. 恢复 apps/app 配置文档

5. 建议后续步骤

高优先级(用户介入)

  1. 生产 Network 验证:在 https://01s-11comm.ruan-cat.comhttps://01s-11-app.ruan-cat.com 用 Chrome DevTools 采集关键页面请求,确认命中独立 apps/api
  2. task1209 R2 drill:获取 R2 凭证后执行完整的 init/sign-part/browser PUT/complete/cleanup/residual 链路。
  3. shadow-off drill:在生产环境临时关闭 shadow/fallback,验证 endpoint 行为。
  4. apps/admin/server 最终删除:生产 Network 验证通过后,执行 git rm -rf apps/admin/server 并 commit。

中优先级(可自行执行)

  1. 继续收敛 apps/api 侧 fallback-only 路径。
  2. 完成 task438/task439 App legacy 迁移。
  3. 为 guarded write 路径建立受控写入窗口(需 Neon DB-backed repository)。

6. 结论

维度状态
apps/app/server 目录✅ 已物理删除
apps/admin/server 目录⚠️ delete-candidate(待生产验证)
CI 流水线✅ 已适配(移除了 Nitro 构建步骤)
配置一致性✅ homepage/env 均已指向独立 API
生产 DB_READY✅ DB_READY + all required tables + migrations up-to-date
OpenSpec 校验✅ strict 通过,isComplete=true,无 CRITICAL
本地验证✅ 36 files / 808 tests + 117 app tests
代码已推送✅ 10 commits → origin/dev (97ff0dd1..0b849db1)

总体评估:Phase7 §7A-§7C 实施任务已完成,本地验证全部通过,代码已推送。apps/app/server 已安全删除;apps/admin/server 具备删除候选资格,但物理删除需等待生产环境验证门禁解除。

贡献者

The avatar of contributor named as ruan-cat ruan-cat

页面历史

最近更新