Files
Fabric/PLAN.md

109 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Fabric 项目规划 v0.1
## 1. 项目目标
**Fabric**:一个可自部署的类 Discord 聊天系统,核心目标是提供稳定、低摩擦的沟通渠道。
### MVP 成功标准
- 支持多人频道聊天 + 私聊
- 支持基础权限与审计日志
- 提供 Docker Compose 一键部署
- 单机可稳定服务 50~200 并发在线MVP 目标)
## 2. 项目定位(一句话)
> 一个可自部署、类 Discord 的实时聊天系统;本体保持平台中立,通过插件生态对接外部系统。
## 3. MVP 必要功能
1. **账号与组织**
- 用户注册/登录
- 工作区Workspace对标 Discord Guild
2. **聊天模型(明确范围)**
- Guild工作区
- Channel公开/私有频道)
- DM1v1 私聊)
- 消息回复、编辑、删除、@提及
- **不做 Thread明确排除**
3. **实时通信**
- WebSocket 实时消息推送
- 在线状态、输入中、消息同步
4. **插件友好设计(本体中立)**
- 本体不内置 OpenClaw 专属逻辑
- 提供稳定事件模型(消息创建/编辑/删除、成员事件、权限变更)
- 提供清晰 API 边界(鉴权、幂等、分页、速率限制、错误码)
- 为外部插件保留扩展点Webhook、Bot Token、Outbound 回调)
5. **权限与审计**
- 基础角色admin/member
- 审计日志(关键操作留痕)
## 4. 建议技术栈v0.1
- **API**NestJSREST + WS
- **Realtime**WebSocket Gateway
- **DB**PostgreSQL
- **Cache/Queue**Redis会话态 + 异步任务)
- **Storage**MinIO附件MVP 可选)
- **Deploy**Docker Composeapp + pg + redis + minio
## 5. 模块拆分(对应仓库)
- `Fabric.Backend`
- Auth/WorkspaceGuild
- Chat CoreChannel、DM、消息不含 Thread
- Integration SurfaceWebhook、Bot Token、扩展回调
- Permission & Audit
- `Fabric.Frontend`
- 工作区/频道 UI
- 消息流、输入框、回复/编辑/删除/@
- 平台中立 UI不内置 OpenClaw 专属交互)
- `Fabric.OpenclawPlugin`
- OpenClaw 侧适配与路由配置
- 会话映射、回执状态、错误处理
- 工具调用卡片与审批流approve/reject
- Webhook + Gateway 双模式MVP 先做 Webhook
- `Fabric.Desktop`
- Desktop 客户端壳(后续)
- `Fabric.Android`
- Android 客户端壳(后续)
## 6. 里程碑6 周参考)
### Week 1需求冻结 + 架构设计
- PRD 冻结
- 架构图、数据模型、接口草案
### Week 2基础业务 API
- 登录注册、工作区、频道、消息 REST API
- 基础前端页面(频道列表 + 消息流)
### Week 3实时通信
- WebSocket 推送
- 在线状态、输入中、消息同步
### Week 4插件集成在 `Fabric.OpenclawPlugin`
- Agent 绑定配置
- 消息路由与回写
- 工具状态卡片running/success/error
- approve/reject 审批流
### Week 5权限与运维
- 角色权限admin/member
- 审计日志
- 健康检查、日志聚合、Compose 完善
### Week 6稳定性与发布
- 压测与性能调优
- Bug 修复
- MVP 发布文档与部署指南
## 7. 仓库组织
- `Fabric`(主仓库)
- 挂载子模块:
- `Fabric.OpenclawPlugin`
- `Fabric.Backend`
- `Fabric.Frontend`
- `Fabric.Desktop`
- `Fabric.Android`
## 8. 当前状态
- 所有仓库已创建为 Public
- `Fabric.*` 已作为子模块挂载到 `Fabric`
- 本体保持平台中立:不包含 OpenClaw 专属业务逻辑
- OpenClaw 相关能力集中在 `Fabric.OpenclawPlugin`
- 本文件为第一版规划,后续按里程碑持续细化