init with react+axum+spacetimedb
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
2026-04-26 18:06:23 +08:00
commit cbc27bad4a
20199 changed files with 883714 additions and 0 deletions

View File

@@ -0,0 +1,129 @@
# 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. 第一批物理删除后,提示词资产与提示词相关工作流继续按迁移核对项追踪,不再恢复旧工程目录。
## 3. 删除前迁移核对项
以下资产曾作为删除前核对项。第一批物理删除后,旧实现不再从工作区直接读取;如需继续核对能力缺口,只允许通过历史提交、迁移文档或 `server-rs/` 已迁移实现追溯:
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.ts``src/prompts/customWorldPrompts.ts` 中仍由前端承载的 AI orchestration / prompt 编排。
## 4. 工程防线
1. 第一批物理删除后,根目录 `package.json` 不再保留 `server-node:*``dev:node``check:server-node-freeze` 等旧入口。
2. Vite 与本地开发脚本默认只指向 Rust `api-server`,不再保留 Node/Rust 后端切换开关。
3. 历史文档允许保留旧 `server-node` 字样,但新增工程入口、脚本、依赖、运行说明不得再指向旧 Node 后端。
4. 若后续需要恢复旧能力,只能迁移到 `server-rs/` 对应 crate 或 Axum facade不恢复 `server-node/` 工程目录。
## 5. 后续处理顺序
1. 继续核对提示词资产与 prompt 工作流是否已完整落到 Rust 主线。
2. 继续把前端残留业务编排迁入 `server-rs/`
3. 清理技术索引中容易误导当前入口的 Node / Express 文案。
4. 保留历史审计材料,但不得把旧 Node 后端描述为当前推荐实现。
## 6. 已确认迁移项
### 6.1 场景幕背景图提示词
2026-04-25 已把旧 Node 自动资产链路中的场景幕背景图提示词包装迁移到 Rust 主线:
1. 旧来源:`server-node/src/services/customWorldAgentAutoAssetService.ts``buildSceneActPrompt(...)`
2. 新主源:`server-rs/crates/api-server/src/custom_world.rs``build_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 主源。
## 7. 第一批安全删除记录2026-04-25
本批次开始把冻结隔离升级为物理删除。执行依据是项目后端主线已固定为 `server-rs/` 的 Rust + SpacetimeDB 多 crate 方案,旧 `server-node/` 不再作为可运行、可扩展、可引用的工程目录保留。
### 7.1 删除范围
1. 删除 `server-node/` 目录本体,旧实现只允许通过历史提交、迁移文档和已迁移到 `server-rs/` 的代码追溯。
2. 删除旧 Node 后端专用入口:`scripts/dev-node.mjs``scripts/server-node-frozen.mjs``scripts/check-server-node-freeze.mjs``scripts/server-node-freeze-baseline.json``scripts/smoke-server-node.ts``scripts/smoke-same-origin-stack.ts``scripts/m7-api-compare.ts``scripts/deploy.sh``scripts/update.sh``view-llm-logs.ps1`
3. 根目录 `package.json` 删除 `server-node:*``dev:node``m7:api-compare``check:server-node-freeze` 等旧入口,并移除 `express``@types/express` 依赖。
4. `npm run dev` 改为启动 Rust 本地栈Vite 默认只代理到 Rust `api-server`,不再保留 `GENARRATIVE_BACKEND_STACK` 的 Node/Rust 双栈切换口。
5. 清理 `.gitignore` 中只服务 `server-node/` 的忽略规则,并同步 `README.md``.env.example``server-rs/README.md``scripts/dev-server/README.md`
### 7.2 暂不处理范围
1. 历史 PRD、审计、迁移基线中的 `server-node` 文案暂时保留为历史记录,不在第一批中大规模改写。
2. `backend-rewrite-tasklist/` 中以旧 Node 后端为对照的迁移材料暂时保留,作为后续核对 Rust 主线能力缺口的历史审计输入。
3. `src/services/ai.ts``src/prompts/customWorldPrompts.ts` 的前端残留编排不属于本批 Node 后端删除范围;后续继续按“前端只负责表现,业务逻辑进入 `server-rs/`”单独收口。
### 7.3 后续批次建议
1. 技术文档索引中的 Node / Express 后端条目只保留为历史资料,不再作为当前入口或推荐方案。
2. 后续如继续整理历史文档,只把仍描述 `Express / PostgreSQL` 为当前目标架构的文字修正为“历史阶段口径”。
3. 继续把前端残留业务逻辑迁入 `server-rs`;涉及 SpacetimeDB 的设计、实现、脚本和绑定继续显式使用相关 skill。
### 7.4 本轮安全核对结果
2026-04-25 本轮开始分批删除时,已确认第一批工程入口层面满足以下条件:
1. 工作区根目录下已不存在 `server-node/` 物理目录。
2. `scripts/` 下已不存在旧 Node 后端专用运行、冻结、smoke、API 对比脚本。
3. 根目录 `package.json` 不再包含 `server-node:*``dev:node``m7:api-compare``check:server-node-freeze` 入口。
4. `package.json``package-lock.json` 不再包含 `express``@types/express``pg``postgres` 依赖包。
5. `README.md``scripts/dev-server/README.md``server-rs/README.md``vite.config.ts``scripts/*.mjs``src/``packages/``server-rs/` 未发现仍主动启动或调用 `server-node` 的当前工程入口。
### 7.5 第二批删除边界
第二批不再删除可运行工程代码,而是清理“容易误导当前实现口径”的历史文档索引:
1. 只修正文档中仍把 `server-node`、Express 或 PostgreSQL 描述为当前推荐后端的句子。
2. 保留审计、PRD、迁移基线中作为历史事实、旧实现来源、能力对照的 `server-node` 引用。
3. 不大规模重写包含中文剧情、需求、审计结论的历史文档,避免把真实历史上下文抹平。
4. 若发现某个历史文档仍指导新开发继续写 Node 后端,先把该文档改为“历史阶段口径”,再继续工程处理。
## 8. 开发命令与脚本复核2026-04-26
本轮按“`server-node/` 已完全移除”的状态复核当前开发入口、脚本和工程配置,确认不再保留旧 Node 后端或 Express 运行路径。
### 8.1 已复核范围
1. 根目录 `package.json``package-lock.json`
2. 根目录 `README.md``.env.example``.gitignore``vite.config.ts`
3. `scripts/``.github/``jenkins/``server-rs/` 下的已跟踪文本文件。
### 8.2 复核结论
1. `package.json` 中不存在 `server-node:*``dev:node``m7:api-compare``check:server-node-freeze` 等旧入口。
2. `scripts/` 下不存在 `dev-node.mjs``smoke-server-node.ts``m7-api-compare.ts``smoke-same-origin-stack.ts` 等旧 Node 后端脚本。
3. `package.json``package-lock.json` 中不存在 `express``@types/express``pg``postgres` 依赖。
4. 当前开发入口继续固定为 `npm run dev``npm run dev:web``npm run api-server:maincloud` 与 Rust / SpacetimeDB 相关脚本,不恢复旧 Node 后端切换开关。
## 9. Caddy 本地服务入口移除2026-04-26
`serve:caddy` 仅服务旧的 dist 本地代理验证链路,不再属于当前 Rust / SpacetimeDB 主开发入口。本轮删除该入口和配套文件,避免开发命令继续暴露第二套本地服务方式。
### 9.1 删除范围
1. 根目录 `package.json` 删除 `serve:caddy`
2. 删除 `scripts/run-caddy-dev.mjs`
3. 删除 `tools/Caddyfile.dev`
4. `.env.example` 删除 `CADDY_API_UPSTREAM` 样例变量。
### 9.2 后续口径
1. 本地完整联调继续使用 `npm run dev`
2. 单独前端联调继续使用 `npm run dev:web` 并通过 Vite 代理到 Rust `api-server`
3. 生产包预览继续使用 Vite `preview`,不恢复 Caddy 专用开发入口。