mirror of
https://github.com/sinanyuntu/trade-message-center.git
synced 2026-09-17 13:22:11 +08:00
2.3 KiB
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/server。mind-test-harness 仅用于开发手工测试,不能被 server 或其它包依赖。若加入正式 UI,再按其真实入口和功能边界拆分文件。
参考文件
apps/server/package.json:当前服务端包的真实内容。apps/mind-test-harness/package.json:独立开发测试工具,不参与构建。tsconfig.base.json:共享编译配置。