Files
Genarrative/docs/audits/engineering/SERVER_NODE_FREEZE_AND_DEPRECATION_2026-04-24.md

3.4 KiB
Raw Blame History

server-node 冻结隔离说明2026-04-24

1. 当前状态

server-node/ 已进入冻结隔离状态,不再作为可运行、可扩展、可引用的后端工程使用。

冻结原因:项目后端主线已经切到 server-rs/ 的 Rust + SpacetimeDB 多 crate 方案,继续保留可执行的 server-node/ 入口会误导后续开发并增加提示词资产、AI 工作流与运行态逻辑的迁移漂移风险。

2. 冻结边界

  1. 禁止新增任何以 server-node/ 为目标的运行脚本、开发入口、CI 入口或工程依赖。
  2. 禁止新增从前端、Rust 后端、脚本或配置主动调用 server-node/ 的逻辑。
  3. 禁止在 server-node/ 内继续新增业务能力;后续能力必须落到 server-rs/ 对应 crate。
  4. 历史文档、审计文档、迁移基线中允许保留 server-node/ 作为旧系统来源说明,但不得把它描述成当前推荐实现。
  5. 删除 server-node/ 前,必须先完成提示词资产与提示词相关工作流的最终迁移确认。

3. 删除前阻断项

以下资产仍需要在删除目录前逐项确认迁移或废弃:

  1. server-node/src/prompts/customWorldEntityPrompts.ts:自定义世界实体生成 prompt。
  2. server-node/src/prompts/customWorldSceneNpcPrompts.ts:自定义世界场景 NPC prompt。
  3. server-node/src/prompts/questPrompts.ts:任务意图识别 prompt。
  4. server-node/src/prompts/runtimeItemPrompts.ts:运行时物品意图识别 prompt。
  5. server-node/src/prompts/customWorldOrchestratorPrompts.ts:旧 Custom World JSON 生成与修复 prompt。
  6. src/services/ai.tssrc/prompts/customWorldPrompts.ts 中仍由前端承载的 AI orchestration / prompt 编排。

4. 工程防线

  1. 根目录 package.json 中的 server-node:* 脚本统一改为冻结失败入口。
  2. 新增 npm run check:server-node-freeze,用于阻止新增 server-node 引用。
  3. 新增 scripts/server-node-frozen.mjs,任何旧 server-node:* 入口被误执行时都会直接失败并提示迁移到 server-rs/
  4. 新增 scripts/server-node-freeze-baseline.json,只允许冻结前已经存在的引用继续作为迁移基线存在。

5. 后续处理顺序

  1. 优先迁移或废弃提示词资产与 prompt 工作流。
  2. 确认前端不再通过任何路径调用 Node 后端能力。
  3. 删除旧脚本、旧 smoke、旧 manifest 与 server-node/ 目录。
  4. 删除冻结基线检查中对历史引用的豁免。

6. 已确认迁移项

6.1 场景幕背景图提示词

2026-04-25 已把旧 Node 自动资产链路中的场景幕背景图提示词包装迁移到 Rust 主线:

  1. 旧来源:server-node/src/services/customWorldAgentAutoAssetService.tsbuildSceneActPrompt(...)
  2. 新主源:server-rs/crates/api-server/src/custom_world.rsbuild_scene_act_background_image_prompt(...)
  3. 使用位置:generate_draft_foundation_act_backgrounds(...) 收集 sceneChapterBlueprints[].acts[] 后,先构造幕背景图专用提示词,再调用 generate_custom_world_scene_image_for_profile(...)
  4. 保留语义:世界名、场景名、幕标题、幕摘要、幕目标、过渡钩子、主角色、辅助角色、世界气质、背景描述,以及“只生成环境背景,不出现角色立绘、站位 UI、对白框、按钮或文字”的约束。
  5. 迁移边界:server-node/ 仅作为历史来源说明,不再参与运行;后续调整统一修改 Rust 主源。