Files
trade-message-center/.trellis/spec/server/frontend/directory-structure.md
T

2.3 KiB

服务端前端目录结构

当前状态

服务端包不包含原生 HTML 联调页,也没有前端构建产物:

apps/
├── server/
│   └── src/                # Fastify HTTP/WS 和业务实现
└── mind-test-harness/
    └── src/                # 独立联调页与 Mind 外部依赖模拟

mind-test-harness 自己监听页面端口,并通过显式 Bright base URL 读取会话、历史、插件状态和同步事件;不连接数据库、不读取 Mind legacy 消息、不引入 UI 框架或前端依赖。server 不注册 /harness 路由,也不导入该包。

边界规则

  • 服务端 API、业务逻辑和数据访问不属于本前端层,即使它们最终为 UI 提供数据,也应留在 backend 规范描述的边界内。
  • 如果未来增加正式管理界面或服务端渲染,入口、静态资源、组件和页面目录必须基于实际构建工具重新确定,并在这里登记;不要把联调页直接演化为正式应用。
  • 不要把扩展包的页面或资源复制到服务端包;两个包通过明确的 API/消息契约协作。

联调页边界

  • 页面脚本只负责输入、请求编排、运行时响应校验、状态展示、历史分页和事实去重;HTTP/WS route、service、repository 保持在 server backend 层。
  • 页面使用独立 history cursor 恢复;重连时先重新读取历史,再建立 WS,避免把内存中的事件状态当作可靠存储。
  • 页面展示 raw conversationId/messageId/sender/login/direction/sentAtMs,文本进入 innerHTML 前必须转义。
  • 发送按钮在当前未实现发送链路时保持禁用,不得伪造成功或写入客户端 outbox。

命名

包目录为 server、包名为 @trade-message-center/servermind-test-harness 仅用于开发手工测试,不能被 server 或其它包依赖。若加入正式 UI,再按其真实入口和功能边界拆分文件。

参考文件