3.4 KiB
3.4 KiB
server-node 冻结隔离说明(2026-04-24)
1. 当前状态
server-node/ 已进入冻结隔离状态,不再作为可运行、可扩展、可引用的后端工程使用。
冻结原因:项目后端主线已经切到 server-rs/ 的 Rust + SpacetimeDB 多 crate 方案,继续保留可执行的 server-node/ 入口会误导后续开发,并增加提示词资产、AI 工作流与运行态逻辑的迁移漂移风险。
2. 冻结边界
- 禁止新增任何以
server-node/为目标的运行脚本、开发入口、CI 入口或工程依赖。 - 禁止新增从前端、Rust 后端、脚本或配置主动调用
server-node/的逻辑。 - 禁止在
server-node/内继续新增业务能力;后续能力必须落到server-rs/对应 crate。 - 历史文档、审计文档、迁移基线中允许保留
server-node/作为旧系统来源说明,但不得把它描述成当前推荐实现。 - 删除
server-node/前,必须先完成提示词资产与提示词相关工作流的最终迁移确认。
3. 删除前阻断项
以下资产仍需要在删除目录前逐项确认迁移或废弃:
server-node/src/prompts/customWorldEntityPrompts.ts:自定义世界实体生成 prompt。server-node/src/prompts/customWorldSceneNpcPrompts.ts:自定义世界场景 NPC prompt。server-node/src/prompts/questPrompts.ts:任务意图识别 prompt。server-node/src/prompts/runtimeItemPrompts.ts:运行时物品意图识别 prompt。server-node/src/prompts/customWorldOrchestratorPrompts.ts:旧 Custom World JSON 生成与修复 prompt。src/services/ai.ts与src/prompts/customWorldPrompts.ts中仍由前端承载的 AI orchestration / prompt 编排。
4. 工程防线
- 根目录
package.json中的server-node:*脚本统一改为冻结失败入口。 - 新增
npm run check:server-node-freeze,用于阻止新增server-node引用。 - 新增
scripts/server-node-frozen.mjs,任何旧server-node:*入口被误执行时都会直接失败并提示迁移到server-rs/。 - 新增
scripts/server-node-freeze-baseline.json,只允许冻结前已经存在的引用继续作为迁移基线存在。
5. 后续处理顺序
- 优先迁移或废弃提示词资产与 prompt 工作流。
- 确认前端不再通过任何路径调用 Node 后端能力。
- 删除旧脚本、旧 smoke、旧 manifest 与
server-node/目录。 - 删除冻结基线检查中对历史引用的豁免。
6. 已确认迁移项
6.1 场景幕背景图提示词
2026-04-25 已把旧 Node 自动资产链路中的场景幕背景图提示词包装迁移到 Rust 主线:
- 旧来源:
server-node/src/services/customWorldAgentAutoAssetService.ts的buildSceneActPrompt(...)。 - 新主源:
server-rs/crates/api-server/src/custom_world.rs的build_scene_act_background_image_prompt(...)。 - 使用位置:
generate_draft_foundation_act_backgrounds(...)收集sceneChapterBlueprints[].acts[]后,先构造幕背景图专用提示词,再调用generate_custom_world_scene_image_for_profile(...)。 - 保留语义:世界名、场景名、幕标题、幕摘要、幕目标、过渡钩子、主角色、辅助角色、世界气质、背景描述,以及“只生成环境背景,不出现角色立绘、站位 UI、对白框、按钮或文字”的约束。
- 迁移边界:
server-node/仅作为历史来源说明,不再参与运行;后续调整统一修改 Rust 主源。