Files
Genarrative/docs/audits/engineering/CURRENT_ENGINEERING_OPTIMIZATION_PRIORITIES_2026-04-10.md
高物 50759f3c1e
Some checks failed
CI / verify (push) Has been cancelled
1
2026-04-20 09:54:17 +08:00

10 KiB
Raw Blame History

当前工程优化优先级汇总2026-04-10

结论先说

2026-04-01 那轮工程审查相比,当前仓库的主问题已经发生了明显迁移:

  • 运行时主链拆分已经有进展,useStoryGeneration.ts 不再是最高复杂度热点。
  • typecheck、前后端测试、内容校验、编码校验都已经回到可通过状态。
  • 当前真正卡住工程节奏的,已经变成:
    • 绿色门禁不可信
    • 构建 warning 仍然会直接打断发布门禁
    • 自定义世界 / 编辑器 / 资产链路出现了新的巨型模块热点
    • 生成产物与旧工具链残留开始反向污染 lint、watch 和本地开发信号

一句话判断:

现在最该优先做的,不是继续扩功能,而是先把门禁重新拉回可信状态,再拆 editor / custom world / assets 这批新的复杂度中心。


2026-04-10 当前校验快照

本次汇总不是只复述旧文档,额外执行了当前仓库校验命令。

项目 结果 说明
npm run check:encoding 通过 编码基线正常
npm run typecheck 通过 当前严格类型门禁可通过
npm run test 通过 92 个测试文件、228 个测试通过
npm run server-node:test:baseline 通过 观测基线正常
npm run server-node:test 通过 72 个后端测试通过
npm run check:content 通过 内容与覆盖校验正常
npm run lint:eslint 失败 330 个 error、4 个 warning
npm run build 失败 构建完成,但因 warning 被 build-gate 拦截

当前状态说明:

  • 仓库不是“完全不可用”,而是已经进入“测试绿,但门禁信号不一致”的阶段。
  • 这类状态比纯红线更危险,因为团队会误以为主链已经稳定。

P0先恢复可信的绿色门禁

P0-1修复 lint 失真,重新建立可信基线

这是当前第一优先级。

证据

  • npm run lint:eslint 当前失败,报出 330 个 error、4 个 warning。
  • 问题既有真实源码问题,也有明显的门禁污染:
    • src/server-node/scripts/ 中存在 import 排序、未使用导入、少量 hook 规则问题。
    • temp-build-goal-check/ 这类生成产物目录也被 ESLint 扫描进来,放大了噪音。
  • .eslintrc.cjs 当前忽略了 distmedia 等目录,但没有忽略 temp-build-goal-check
  • vite.config.tsserver.watch.ignored 已经忽略了 **/temp*build*/**,说明当前 watch 口径和 lint 口径并不一致。

影响

  • 团队无法快速判断“现在是源码真问题,还是产物目录噪音”。
  • lint 失真会直接削弱 review、回归和集成效率。
  • 在这种状态下继续加功能,只会让真实错误被更多噪音淹没。

当前建议

  1. 先清理或迁出 temp-build-goal-check/ 这类生成产物目录,至少不要再让它进入 lint 扫描范围。
  2. 统一 watch / lint / build 对临时目录和生成目录的忽略口径。
  3. 再集中清当前源码层 lint 问题,优先处理:
    • import 排序
    • 未使用导入
    • 少量真实规则错误,例如 hook 误用和 ban-types

P0-2修复构建 warning恢复可发布构建

这是和 P0-1 同级的阻塞项。

证据

  • npm run build 当前会被 scripts/build-gate.mjs 拦截。
  • 当前构建输出里最关键的 warning 有两类:
    • src/services/ai.ts 虽然尝试走动态加载,但又被 src/components/CustomWorldEntityEditorModal.tsx 静态引入,导致拆包失效。
    • AuthenticatedApp-*.js 达到 1078.61 kB,超过当前 750 kB 的 chunk warning 门槛。
  • 同轮构建里,index-*.css 也已经达到 157.56 kB,说明不仅 JS 主块重,样式也在继续膨胀。

影响

  • 当前不是“构建有一点 warning 可以先带着走”,而是发布门禁已经被 warning 直接打断。
  • editor / custom world / asset 工具能力正在把非主链代码重新带回主包路径。
  • 后续如果继续叠加这条链路,首屏、缓存和回归都会继续变差。

当前建议

  1. 先切断 CustomWorldEntityEditorModal.tsx -> ../services/ai 的静态依赖,让 ai.ts 真正留在懒加载路径。
  2. 把自定义世界编辑器、资产工作台、非首屏工具能力继续从 AuthenticatedApp 主块中拆出。
  3. 保持 build warning = 失败 的策略,不建议通过放宽阈值掩盖问题。

P1拆掉新的复杂度中心

P1-1优先拆 editor / custom world / assets 新热点

旧的运行时主链热点已经有所缓解,但复杂度并没有消失,而是转移到了新的模块上。

当前大文件热点

前端:

  • src/components/CustomWorldEntityEditorModal.tsx2778
  • src/services/ai.ts2454
  • src/services/customWorld.ts2217
  • src/data/npcInteractions.ts2103
  • src/data/characterPresets.ts1953
  • src/services/prompt.ts1725

后端:

  • server-node/src/modules/assets/characterAssetRoutes.ts2295
  • server-node/src/app.test.ts1527
  • server-node/src/auth/authService.ts1243
  • server-node/src/modules/quest/runtimeQuestModule.ts1137

工具链:

  • scripts/dev-server/*.ts:已于 2026-04-19 删除,旧 Vite 本地 API 链路不再保留实现代码

影响

  • 复杂度并没有真正被消灭,而是从运行时 story hook 转移到了自定义世界、资产编辑、提示词和数据装配链。
  • 这些文件大多同时承载了:
    • 领域规则
    • API 调用
    • 文本拼装
    • UI 状态
    • 工具流程
  • 后续任何一个小改动,都容易牵动整条大链,回归成本会再次上升。

当前建议

  1. 前端优先拆 CustomWorldEntityEditorModal.tsx,按“世界锚点 / 角色 / 地点 / 资产 / 高级设置”分段。
  2. 后端优先拆 characterAssetRoutes.ts,把 route、job orchestration、文件发布、模板读取拆开。
  3. src/services/ai.tssrc/services/customWorld.ts 继续按运行时 / 编辑器 / 资产工具三条职责分层。

P1-2继续收口 editor / assets 工具链边界(旧链路已删除)

这项的重要性正在上升。

证据

  • docs/technical/EDITOR_ASSET_API_MIGRATION_2026-04-08.md 已说明 editor/assets API 已经迁到 server-node,方向是对的。
  • scripts/dev-server/*.ts 旧 Vite 本地 API 实现代码已于 2026-04-19 删除,仓库里不再保留并行实现。
  • 目录 temp-build-goal-check/ 当前包含 15099 个文件,已经开始干扰 lint 和本地开发信号。
  • 相关日志里还出现了大量指向 temp-build-goal-check 的页面 reload 与 ENOENT 噪音。

影响

  • editor/assets 正式入口已经收口到 server-node,这部分双链路问题已解除。
  • 当前更大的噪音来源已经转移到临时构建目录、检查目录和历史日志残留。

当前建议

  1. 保持 scripts/dev-server/README.md 作为迁移结果标记,不要恢复旧 Vite /api/* 本地插件链。
  2. 将临时构建目录、检查目录、导出目录统一移出主工程扫描面。
  3. 继续以 server-node/src/modules/editor/**server-node/src/modules/assets/**src/editor/shared/editorApiClient.ts 作为唯一推荐入口,减少后续回流。

P2继续做架构收口但不必抢在 P0 前面

P2-1继续压缩前端遗留 AI / 自定义世界实现

这一项仍然值得做,但当前不再是最前面的阻塞。

原因

  • docs/technical/EXPRESS_BACKEND_WORKSTREAM_AUDIT_2026-04-09.md 显示正式运行时主链已经大幅回收到后端。
  • 当前更明显的遗留,已经集中到编辑器、自定义世界工作台和资产工具,而不是正式运行时 story 主链。

当前建议

  1. 继续让正式运行时保持“后端为真相源”。
  2. 对仍留在前端的大 AI / prompt / custom world 实现,优先做职责收缩,而不是继续在原文件上堆逻辑。

P2-2继续优化自定义世界工作台但以“减负”和“分层”为主

这一项更适合作为 P0、P1 稳住后的下一轮重点。

依据

  • docs/audits/CUSTOM_WORLD_CREATOR_TOOL_AUDIT_2026-04-08.md 已经明确指出:
    • 自定义世界入口、澄清、锁定、局部重生成、结果工作台仍是半收口状态。
  • 当前最大的前端热点文件也集中在这条链路上,说明它已经不仅是产品问题,也是工程复杂度问题。

当前建议

  1. 优先减少“大一统编辑弹窗”的职责,把高杠杆编辑和高级编辑分层。
  2. 让自定义世界生成、锁定、局部重生成规则继续向后端收口。
  3. 移动端优先,避免长表单和重弹窗继续吞掉维护成本。

推荐执行顺序

第一阶段:先把门禁拉回可信

  1. 修 lint 口径失真
  2. 清生成产物扫描污染
  3. 修 build warning

第二阶段:再拆新的复杂度中心

  1. CustomWorldEntityEditorModal.tsx
  2. characterAssetRoutes.ts
  3. 收缩 src/services/ai.ts / src/services/customWorld.ts

第三阶段:最后收 editor / custom world 架构尾巴

  1. 清理旧 Vite 工具链残留
  2. 继续把自定义世界和资产工具收回正式后端边界

当前不建议优先做的事

  • 不建议在当前 lint 与 build 仍然是红线时继续横向扩 editor / custom world 功能。
  • 不建议通过放宽 chunk warning 阈值来“修复”构建。
  • 不建议继续在 CustomWorldEntityEditorModal.tsxsrc/services/ai.tscharacterAssetRoutes.ts 这类巨型文件中直接堆新逻辑。

本文依据

文档依据:

  • docs/audits/engineering/ENGINEERING_OPTIMIZATION_REVIEW_2026-04-01.md
  • docs/technical/EXPRESS_BACKEND_WORKSTREAM_AUDIT_2026-04-09.md
  • docs/technical/EDITOR_ASSET_API_MIGRATION_2026-04-08.md
  • docs/audits/CUSTOM_WORLD_CREATOR_TOOL_AUDIT_2026-04-08.md
  • docs/planning/CURRENT_GAME_ITERATION_PRIORITIES_2026-04-03.md

当前仓库校验依据:

  • npm run check:encoding
  • npm run typecheck
  • npm run test
  • npm run server-node:test:baseline
  • npm run server-node:test
  • npm run check:content
  • npm run lint:eslint
  • npm run build