Document shared workspaces, realtime messaging, member handling, and source permissions. Include local interaction demos and verification scripts, and update development startup for Electron Node mode. Production collaboration services remain unimplemented.
130 lines
8.7 KiB
Markdown
130 lines
8.7 KiB
Markdown
# ShareServer 实施进度
|
||
|
||
## 当前状态
|
||
|
||
ShareServer 已进入可运行交互原型阶段。当前实现用于验证完整控制台信息架构、视觉方向与操作
|
||
流程,不提供生产身份、组织隔离、设备连接、授权、任务路由或数据持久化。
|
||
|
||
### 2026-09-09:Office 编辑目标设计
|
||
|
||
- PRD 新增 `FR-14`,将 ONLYOFFICE Docs、编辑会话、工作副本、保存检查点和 callback 定义为
|
||
ShareServer 可选托管能力。
|
||
- 功能逻辑明确服务端 checkpoint 不等于 Desktop 源文件已保存,并定义单用途凭据、会话状态、
|
||
callback 幂等、冲突结果和保留规则。
|
||
- 技术设计增加 Office 模块、API audience、数据模型、对象存储、部署依赖、编辑器插件、安全
|
||
边界和三平台集成测试要求;管理界面设计增加 Office 健康、策略和会话管理。
|
||
- 这些变更只有设计文档,没有修改当前 Hono/React 原型。仓库仍未集成 ONLYOFFICE、对象存储、
|
||
callback、Office API 或 GoodBuddy Desktop 文档 Tab,不能视为功能实现。
|
||
|
||
### 2026-09-06:独立仓库迁移
|
||
|
||
- 源码、测试、锁文件、构建及容器配置从 GoodBuddy 的 `shareserver/` 移至
|
||
`goodbuddy-shareserver` 仓库根目录,六份功能文档随迁,保留原型行为不变。
|
||
- 跨端共享网络总体设计保留在 GoodBuddy 仓库。双向文档链接采用同级克隆布局,
|
||
服务安装、测试、构建和运行不依赖桌面端仓库。
|
||
- 原桌面工作区的依赖和构建产物未搬动或删除;其测试/lint 排除项保留以避开这些本地产物。
|
||
- 新仓库执行 `npm ci`、`npm test`(2 个文件、5 个测试)、`npm run typecheck`、
|
||
`npm run lint` 和 `npm run build` 全部通过。安装报告 1 个 low 级依赖漏洞,
|
||
未在本次迁移中升级依赖。
|
||
- 构建后的独立服务在回环地址通过健康、就绪、快照、无持久化操作确认、SPA 回退和
|
||
JS/CSS 静态资源 HTTP 冒烟验证,随后停止测试进程;未重跑浏览器交互或容器运行测试。
|
||
- 31 个非 README 源码/配置文件与来源提交逐字节一致,35 个相对 Markdown 链接均可解析。
|
||
- GoodBuddy 桌面仓库 `npm test`、`npm run typecheck`、`npm run lint` 全部通过;
|
||
首次全量验证达到 200 秒超时后,延长时限重跑通过。
|
||
- 历史来源记录于根 README。此次迁移不代表生产功能、Desktop 集成或容器运行已验收。
|
||
|
||
### 2026-09-06:桌面发布与测试边界
|
||
|
||
ShareServer 功能尚未完成,不属于本次 Desktop `0.12.5` / Agent `0.11.19`
|
||
的产品交付或发布验收范围。用户确认本次发布不需要单独测试 ShareServer,
|
||
其原型测试通过也不代表生产功能已完成。以下记录对应拆仓前的发布操作。
|
||
|
||
桌面端根测试和 lint 配置排除 `shareserver/**`,桌面发布 CI 不为其单独安装测试依赖。
|
||
ShareServer 独立项目自身的测试配置保留,供后续功能开发使用;本次不运行其独立测试。
|
||
此前候选 `89a81dd` 临时加入的 `npm ci --prefix shareserver` 步骤已撤除。
|
||
|
||
ShareServer 的实现与验证在后续功能开发中单独推进;真实 Desktop 集成验收仍属于
|
||
下文的剩余生产工作。
|
||
|
||
## 已验证实现
|
||
|
||
### 2026-09-05:全控制台交互原型
|
||
|
||
- `shareserver/` 是独立 Node.js/TypeScript 项目,不依赖 Electron Main 或
|
||
`src/shared`。
|
||
- Hono 同源提供健康、就绪、原型快照和无持久化操作确认 API。
|
||
- 管理控制台覆盖概览、组织与成员、设备、能力目录、权限策略、审批、发布与更新、网关联邦、
|
||
任务与中继、审计和系统设置。
|
||
- 成员自助覆盖自己的设备、授权和申请;角色切换后导航和 URL 范围同步变化。
|
||
- 控制台支持深浅主题、组织范围、全局搜索、列表搜索、状态筛选、详情、表单、确认、成功/
|
||
失败反馈、响应式侧栏和键盘对话框。
|
||
- 构建后的 Web 由 Hono 同源托管;`Dockerfile` 使用多阶段构建和非 root 运行用户。
|
||
- readiness 明确返回 `interactive-prototype` 与 `productionReady=false`,避免把 fixture
|
||
误认为生产服务。
|
||
|
||
验证证据:
|
||
|
||
```text
|
||
cd shareserver
|
||
npm test # 2 files, 5 tests passed
|
||
npm run lint # passed
|
||
npm run build # typecheck + Vite Web + server TypeScript passed
|
||
```
|
||
|
||
浏览器实际验收:
|
||
|
||
- 生产构建在 `http://127.0.0.1:8787` 启动并成功加载 API 快照。
|
||
- 宽屏管理员概览、审批详情、批准确认和原型 API 提交流程通过。
|
||
- `390 × 844` 成员自助页面、筛选区和列表布局通过。
|
||
- 深色与浅色审批页的 WCAG 2 A/AA 自动检查均为 0 个确定违规;半透明侧栏被检查器列为
|
||
需人工判断项,已通过实际截图复核文字可读性。
|
||
- 仓库级 `npm test` 通过 325 个测试文件、3501 个测试,另有 8 个文件和 55 个测试按既有
|
||
条件跳过;仓库级 `npm run typecheck` 与 `npm run lint` 通过。
|
||
|
||
## 剩余生产工作
|
||
|
||
按技术设计从以下纵向切片开始,不能把原型 fixture 逐步演变为权威状态:
|
||
|
||
1. FR-1 一次性初始化、本地管理员身份、Web session 和 CSRF。
|
||
2. PostgreSQL migration、实例/组织/成员表、强制 organization repository 作用域和事务审计。
|
||
3. 真实组织与成员管理 API,再将对应原型页面切换到权威数据。
|
||
4. 设备挑战注册、凭据和出站 WebSocket 连接。
|
||
5. Publication、目录、拒绝优先策略、审批和任务路由。
|
||
6. Package、可选中继、联邦、保留、导出、备份恢复和真实 Desktop 端到端验证。
|
||
7. `FR-14` Office 会话、对象存储、ONLYOFFICE、callback、checkpoint、策略、管理界面和三平台
|
||
Desktop 文档 Tab 端到端验证。
|
||
8. `FR-15` 至 `FR-18` 本地空间共享关联、资料定期/按需同步、实时消息、显式处理请求和共享来源授权;
|
||
对照用户故事完成服务端契约与 Desktop 集成,不能把静态 demo 当作真实消息服务。
|
||
|
||
当前尚未满足 PRD 的产品验收,也未进行真实 Desktop/ShareServer 集成测试。
|
||
|
||
2026-09-05 PRD `FR-13` 新增组织数字人发布和 `@数字人` 调用。当前交互原型尚无“数字人”
|
||
目录、发布管理、提及选择器或 Agent 记忆边界展示,因此这些能力仍属于剩余生产与原型工作,
|
||
不能由现有通用能力目录或原型操作确认替代。
|
||
2026-09-09 PRD `FR-14` 新增 Office 编辑服务;当前原型同样没有对应导航、配置或服务端路径。
|
||
|
||
## 2026-09-28:客户端协作 US 与逻辑审查
|
||
|
||
- 新增 `user-stories.md`,补充本地工作空间、组织共享、同步、成员消息、分身处理和来源授权的
|
||
验收场景。PRD 新增 FR-15 至 FR-18,逻辑设计补充分离的共享、同步、交付与处理状态。
|
||
- 修订 `@数字人` 与 `@成员` 的范围,保留直接能力调用,同时定义发给成员后由本人或已授权
|
||
分身处理的流程。补充本人确认优先、草稿可见范围和接手时的并发检查。
|
||
- `docs/demo/client` 已有个人共享、设置及组织工作空间的本地交互演示;只使用浏览器存储和
|
||
固定回复,没有身份校验、服务端持久化、同步或真实模型执行。本轮仅修改设计文档。
|
||
- demo 仍需按最新 US 调整:统一创建本地空间及共享属性,增加同步与撤销状态;回顾原文
|
||
阅读仍依赖回答授权,尚未覆盖 US 要求的“仅阅读”组合;空间分身尚未绑定真实 Publication。
|
||
- 默认同步周期、容量和保留期限待定;匿名分享仍为概念演示,不纳入首期已登录组织协作验收。
|
||
|
||
### 同日补充:轻量 IM 与实时组件提案
|
||
|
||
- FR-16 区分实时消息与资料同步:普通消息、公开回复及处理状态实时更新,资料定期/按需同步。
|
||
暂停资料自动同步不停止消息收发、通知或断线补收。
|
||
- FR-17 区分提及和请求处理。`@成员` 只通知;显式选择处理人后才进入本人/分身处理流程。
|
||
新增 US-MSG-04,覆盖普通消息、线程、实时更新、确认丢失、离线补收和旧连接撤销。
|
||
- 技术设计记录 ShareServer + PostgreSQL + Centrifugo 为优先验证提案,并比较 Matrix、OpenIM
|
||
和 Socket.IO;没有确定组件或版本,没有安装依赖,也没有运行候选服务验证。
|
||
- 补充消息与 outbox 同事务、至少一次投递、数据库补收、草稿私有事件及权限撤销的设计要求。
|
||
这些是待实现契约,不是现有 API 或数据库能力。
|
||
- 本轮仅更新文档。静态 demo 仍要求选择接收人并自动进入处理流程,尚未支持普通消息、提及与
|
||
请求处理分离、真实实时推送及离线补收;需在后续原型迭代中对齐。
|