mirror of
https://github.com/Ryder-Sun/Meldwork.git
synced 2026-11-07 06:56:03 -10:00
chore: untrack local docs folder from version control
docs/ is already in .gitignore but two files remained tracked. Removed them from the index so future docs stay local-only.
This commit is contained in:
1 parent
0591472bc4
commit
fbc6e08e80
2 files changed
-150
No files matched your search
@@ -1,81 +0,0 @@
|
||||
# Meldwork V1.0.7 P0 产品需求
|
||||
|
||||
状态:开发基线。日期:2026-10-19。基线:main 7deb8a3。
|
||||
|
||||
## 1. 目标与约束
|
||||
|
||||
在现有桌面会话中完成「定义任务 → 执行 → 查看交付 → 修改 → 人工采用 → 导出 → 再做一次」。普通聊天、Agent 选择、讨论模式、附件和知识源选择、运行轨迹及权限审批保持原有行为。任务功能是可选入口,不替换聊天。
|
||||
|
||||
本版只支持本地单用户。无新服务器、账号、组织共享、定时任务、自动组队平台、模板市场或 Office 编辑器。执行仍在主进程。沿用中英双语及现有视觉样式。
|
||||
|
||||
## 2. P0 范围
|
||||
|
||||
| 编号 | 功能 | 范围 | 不包含 |
|
||||
| --- | --- | --- | --- |
|
||||
| P0-01 | 任务卡 | 名称、目标、交付要求、正文/文件类型、逐行验收标准;保存草稿,首次执行前可编辑;内置项目简报示例 | 自动调用模型解析任务、复杂向导 |
|
||||
| P0-02 | 输入与执行 | 使用现有输入框选取本次附件、知识源、Skill 和 Agent;主进程把任务要求注入提示;保存每次运行的输入快照 | 隐式扩大权限或默认获取旧附件 |
|
||||
| P0-03 | 交付视图 | 展示每次运行的正文/实际附件、版本、输入材料、人工检查清单和备注;运行轨迹仍在原入口 | 伪造逐句证据映射或自动质量通过 |
|
||||
| P0-04 | 修订 | 指定历史版本、填写修改意见,在现有输入框补新材料后再次发送;生成新版本;旧版本和采用时间保留 | 局部重算、全文差异编辑器 |
|
||||
| P0-05 | 人工验收 | 每项标准支持待检查/符合/不符合/无法判断;全部符合且存在要求的成果才能采用;采用绑定版本 | Agent 自评代替用户验收 |
|
||||
| P0-06 | 导出 | 主进程原生保存对话框导出 Markdown 正文(含输入材料、检查状态、备注);实际生成附件单独原样导出;取消不算成功 | 固定版式 DOCX 转换、批量 ZIP、自动发送或业务系统写回 |
|
||||
| P0-07 | 再做一次 | 复制任务要求到新的独立会话,保留可用 Agent 配置,默认只读、独立空工作目录;不复制上下文、附件、知识源、Skill、版本或采用记录 | 项目长期记忆、自动沿用数据 |
|
||||
|
||||
## 3. 页面与交互
|
||||
|
||||
会话标题下增加紧凑「任务与交付」入口,默认收起。展开后使用原有按钮、输入和 Markdown 样式,内容区域独立滚动,不使用新遮罩。Escape 收起并回到入口。原时间线和输入框保留。
|
||||
|
||||
入口内可选择当前会话的任务,或切回「普通聊天」。新建时填写任务卡;提供「项目简报」示例,示例不含真实数据。点击保存后,任务会与下一次输入框发送绑定。关闭面板不等于取消任务绑定,收起栏明确显示当前任务。切回普通聊天才解除绑定。
|
||||
|
||||
任务执行时冻结任务要求,禁用编辑/修订操作,保留原停止按钮。完成后展开当前任务的交付视图;用户正在其他会话时不抢焦点。版本选择器允许查看历史版本。每版显示独立运行状态、交付状态和产生时间。
|
||||
|
||||
「要求修改」先保存指定版本和修改意见,再由用户通过原输入框发送;不自动启动或授权。修订自动附带该版本实际产物文件,用户可补新材料;合计超过附件上限时拒绝启动并提示。修改失败后保留旧成果及修改意见,允许重试。「再做一次」创建独立只读会话并切换过去,提示重新选择本次材料。
|
||||
|
||||
输入材料列表是来源范围清单,不宣称每条结论都有引用。提示 Agent 在正文中标明关键来源和未决事项。无法定位时明确要求用户核实;本版不自动生成逐句证据链接。验收清单由用户填写,备注可记录未决事项和接受理由。
|
||||
|
||||
同一会话的历史上下文沿用现有机制,并在输入范围中提示;任务隔离保证产物归属,不承诺同一会话内上下文隔离。需要隔离时使用「再做一次」的新会话。导出正文前必须保存当前检查及备注,避免导出旧检查结果。采用前验证附件仍可从应用存储读取。
|
||||
|
||||
## 4. 数据与状态
|
||||
|
||||
任务独立于会话和运行:一个会话可有多个任务,一个任务可有多次运行;每次产生可见成果的运行形成一个不可变内容版本。版本包含本次输入快照、正文/附件、基础版本 ID、修改意见、人工检查结果与采用时间。运行即使失败也可保留部分成果,但不自动采用。
|
||||
|
||||
| 维度 | 状态 | 转换 |
|
||||
| --- | --- | --- |
|
||||
| 任务 | draft / active | 保存草稿;首次绑定运行后 active,要求冻结 |
|
||||
| 运行 | preparing / running / waiting / completed / partial / failed / stopped / timeout / interrupted 等既有状态 | 由真实运行与恢复记录驱动;运行成功不等于交付成功 |
|
||||
| 交付 | none / pending / changes-requested / accepted | 无实际成果为 none;产生版本为 pending;提出修改为 changes-requested;用户逐项检查后 accepted |
|
||||
| 检查项 | pending / met / unmet / unknown | 只接受显式用户操作;新版本全部重置 pending |
|
||||
|
||||
采用 V1 后生成 V2,不撤销 V1 的历史采用记录,V2 重新验收。导出不改变采用状态,草稿也可以导出。执行结束但没有实际文件时,文件类型任务仍不允许采用。
|
||||
|
||||
任务状态与工作区一起原子保存。旧工作区没有任务字段时正常读取。删除会话同时删除其任务;删除消息不应删除已冻结交付版本或使其附件被回收。重启后按既有 Run Ledger 恢复;没有可恢复执行的运行标记 interrupted,保留成果并允许重试。
|
||||
|
||||
## 5. 权限与数据边界
|
||||
|
||||
所有任务修改、版本检查和导出均经受信 preload IPC,在主进程校验字段、长度、任务/会话归属和状态。渲染层不能指定任意读取路径、写入路径、正文替代数据或伪造版本。导出目的地只能来自主进程原生保存对话框。附件必须属于所选版本,读取时验证现有存储校验和。
|
||||
|
||||
任务复用不继承写权限;使用应用管理的独立空目录,用户仍可通过原设置显式更改目录及授权。外部模型和知识源仍遵守原产品边界,不宣称离线运行。
|
||||
|
||||
## 6. 验收标准
|
||||
|
||||
| ID | 操作与预期 |
|
||||
| --- | --- |
|
||||
| A01 | 旧工作区升级后普通聊天、Agent 选择、模式切换和附件流程不变;不开任务面板即可继续工作。 |
|
||||
| A02 | 草稿必填字段和长度校验有效;保存并重启后仍可编辑;首次运行后任务要求冻结。 |
|
||||
| A03 | 任务要求实际进入 Agent 提示;本次输入、运行 ID、产物版本严格关联,不混入同会话其他任务。 |
|
||||
| A04 | 正常运行产生正文或附件后进入待验收;无成果、仅失败系统消息不产生虚假版本。 |
|
||||
| A05 | 文件任务只有正文时不可采用;实际附件能打开和导出。 |
|
||||
| A06 | 任一标准非 met 时不可采用;新版本不继承检查结果;旧版采用时间不被修订覆盖。 |
|
||||
| A07 | 指定 V1 修订后 V2 可追溯到 V1 和修改意见;失败/停止/重启后 V1 仍可查看导出。 |
|
||||
| A08 | 导出取消、写入失败不显示成功,不改变版本或采用状态;成功 Markdown 包含材料、检查结果和备注。 |
|
||||
| A09 | 复用产生新任务和独立会话;无旧消息、附件、知识源和写授权;要求重新提供材料。 |
|
||||
| A10 | 越权任务 ID、跨版本附件 ID、伪造状态、超长字段和任意路径请求被主进程拒绝。 |
|
||||
| A11 | 删除源消息后已冻结版本及附件仍在;删除会话清除任务;状态持久化失败不留下内存伪成功。 |
|
||||
| A12 | 中英文、窄窗口、键盘 Escape/焦点可用;Electron 中走完创建、发送、修订、采用、导出、复用和重启流程。 |
|
||||
|
||||
## 7. 验证与交付
|
||||
|
||||
执行前端测试、Web 构建、桌面构建、桌面测试与 pack。新增任务状态、安全边界和组件交互测试。在隔离用户目录的 Electron 桌面中使用确定性 Agent 验证流程,不改动真实用户数据;真实 Provider 兼容性仅在实际验证后声明。
|
||||
|
||||
桌面流程命令:先 `npm --prefix frontend run build:desktop`,再 `env -u ELECTRON_RUN_AS_NODE npm --prefix desktop run test:delivery:desktop`。脚本加载生产主进程与 preload,仅替换 Agent 执行为确定性结果;截图、导出与隔离用户目录放在系统临时目录,成功后输出路径。
|
||||
|
||||
不在本轮发布、推送、合并或改动用户已有 README/官网修改。开发结果在 1.0.7 分支提供,报告实际完成与未完成验收项。
|
||||
@@ -1,69 +0,0 @@
|
||||
# V1.0.7 聊天、原生 Agent 与共享上下文校验
|
||||
|
||||
日期:2026-10-20。工作分支:`1.0.7`。
|
||||
|
||||
## 产品调整
|
||||
|
||||
- 私聊、群聊均移除 Tasks & delivery 入口、面板和发送绑定,恢复标题、消息、输入区三行布局。
|
||||
- 历史交付数据和后端存储保留,避免删除用户文件;移除已失去入口的前端组件和旧交付 UI smoke。
|
||||
- 左侧导航保留 `overflow: auto`,隐藏滚动条;执行详情、设置页仍保留原有细滚动条。
|
||||
- 首次使用增加可跳过的工作偏好页;通用设置可随时修改。包含三种起点、交付详略、推进方式、证据要求、最多 8 个协作者偏好、800 字以内补充说明。
|
||||
- 保存通过受信任 preload IPC 进入主进程,严格校验并持久化;运行中禁止修改。默认设置不额外注入提示词,自定义偏好提示限制在约 1500 字符以内。偏好不能授予写权限,不能自动添加参与者。
|
||||
|
||||
## MiMo
|
||||
|
||||
原因:`mimo providers whoami` 的官方账号登录状态不能代表当前自定义 Provider 是否可用。本机选择了原生配置中的自定义 Provider,但旧检测将其判为未登录。
|
||||
|
||||
修复:检测 MiMo 原生配置中当前选择的 Provider 是否具有可用配置,不修改原生 model、baseURL 或密钥,不注入任何固定模型。凭据不返回渲染进程。
|
||||
|
||||
实测:原生二进制 0.1.0 经生产 ACP 适配器完成首次调用和会话续接;隔离 Electron 用户目录下,经真实主进程完成 MiMo 与一个确定性测试协作者的群聊调用。测试未改动用户日常工作区。
|
||||
|
||||
限制:这是当前本机配置的成功证据,并不证明所有 Provider、平台或所有凭据引用形式均兼容。
|
||||
|
||||
## WorkBuddy
|
||||
|
||||
客户端 2.161.0 随附的是独立 lite CLI。原生桌面账号使用宿主管理的加密凭据,独立 CLI 不能直接解锁。不得将“客户端已登录”简单当作“独立 CLI 可调用”。
|
||||
|
||||
本次改动:准确区分账号未验证、桌面凭据受保护、所选 Provider 鉴权失败;不默认选择第一个模型,也不包含 glm 或任何机构模型作为默认值。显式选择本机已有模型仅作为折叠的高级兼容选项,Meldwork 只持久化模型 ID。此前该兼容路径已完成真实直接调用、续接和群聊验证,但它不等于自动复用桌面账号和桌面当前模型。
|
||||
|
||||
官方方案核对:
|
||||
|
||||
- [WorkBuddy Open API](https://open.workbuddy.cn/en/docs/openapi):接入要求注册第三方应用、取得 clientId/clientSecret,并由用户完成 OAuth 授权。文档明确 clientSecret 不得暴露在客户端代码中。
|
||||
- Local Assistant API 的调用地址是 `https://www.workbuddy.cn/openapi/v2/localassistant`,经 WorkBuddy 服务转接 PC 助手,并不是公开的本地进程协议。
|
||||
|
||||
未完成:自动沿用 WorkBuddy 桌面账号和当前模型。当前缺少已注册应用身份;官方方案还涉及云端转接及保密客户端凭据,与 Meldwork 当前无需服务器的产品边界存在冲突。本次没有加入必需服务器、复制桌面令牌、关闭认证或伪造成功状态。
|
||||
|
||||
## 群聊共享上下文:保证与限制
|
||||
|
||||
已经具备且本次验证的机制:
|
||||
|
||||
1. V4 调度冻结公共任务快照,以 snapshotHash 绑定任务、历史和参与者。所有参与者读取同一公共任务基线。
|
||||
2. 每次调用还携带当时可见的讨论记录。原生会话分别归属于各 Agent;顺序执行时,后执行者会看到前执行者的新回复,因此完整提示词不应逐字相同。
|
||||
3. 增量交付回执按原生 Session、Run、快照和来源正文哈希隔离。已确认的完整消息可跳过;摘录不得确认成“已读全文”。重启后仍复用持久化回执。
|
||||
|
||||
本次优化:
|
||||
|
||||
- 公共讨论正文预算由 48000 降至 16000 字符,单条上限 2400;按参与者数量分摊预算,避免高频发言者挤掉其他协作者。
|
||||
- 采用确定性原文摘录,优先保留约束、否定、决定、来源及未决分歧,合并完全重复的句子。保留来源消息 ID 和原始顺序。
|
||||
- 原始消息仍在本地保存。摘录和省略明确提示,不能据此推断达成一致或任务完成。
|
||||
- 快照历史保留最早两条用户消息及最近历史,在最多 16 条内降低早期约束被后续讨论挤掉的概率。
|
||||
|
||||
固定评测样本:32 个协作者、每人包含大量重复背景、来源与未决事项,原文合计 338018 字符,交付 6512 字符,减少 98.07%。32 个协作者均被保留,32 条均标为摘录,完整消息确认数为 0。数字为字符,不是 tokenizer 统计,也不是普遍场景压缩率。
|
||||
|
||||
准确性样本验证:中部预算约束、否定决策、来源 URL、供应商冲突原文保留;三个参与者均得到同一冻结任务和早期隐私/预算要求;原始快照不被修改。另有实际调度、跨会话隔离和重启回执测试。
|
||||
|
||||
结论边界:共享的是可核验的公共任务和讨论事实,不是共享模型内部记忆。提取式压缩避免生成不存在的结论,但仍可能漏掉没有明显标志的事实;超长单句仍可能截断。有限预算无法保证任意历史全部保真,测试也不能证明模型最终交付质量必然提高。后续若引入语义摘要,应以事实召回、否定/分歧保真和来源可追溯为准入条件。
|
||||
|
||||
## 验证记录
|
||||
|
||||
- `npm --prefix frontend test`:365 项通过。
|
||||
- 聚焦上下文、偏好、MiMo、preload 测试:47 项通过。
|
||||
- WorkBuddy 就绪、原生模型兼容、Agent 目录回归:71 项通过;桌面加密凭据阻塞只应用于确认随附 lite bundle 的安装,不阻塞独立完整版 CLI。
|
||||
- `npm --prefix frontend run build`:通过。
|
||||
- `npm --prefix desktop run pack`:包含 desktop 前端构建,通过;未进行发布签名。
|
||||
- Electron 隔离实机:首次偏好、预设、自定义保存、窄窗、Escape、MiMo 原生就绪、真实群聊调用、交付面板移除、隐藏侧栏滚动条、偏好持久化均通过。
|
||||
- 原生 MiMo 首次与续接:均返回预期内容。
|
||||
- `npm --prefix desktop test`:1630 项,1629 通过,1 项旧测试要求提示词超过 24000 字符。已将其更新为压缩长度、三方信息保留和摘录标记检查;随后完整重跑 `local-workspace-v4-natural-discussion.test.cjs`,40 项全部通过。
|
||||
- `git diff --check`:通过。README 两份文件及 landing 页面保留原样,内容校验和与本轮开始时相同。
|
||||
|
||||
日志和实机截图位于 `/tmp/meldwork-107-*`,不写入仓库根目录。
|
||||
Reference in new issue
Block a user