Files
goodbuddy/docs/features/conversation-media-generation/logic-design.md
T
mesalogo e5aa9ed688 fix: reuse runtime processes across project sessions
Multiple projects could spawn duplicate heavyweight runtimes, while settings
changes and remote reconnection could cancel or strand native conversations.
Share compatible local OpenCode and DeepSeek Harness process owners and
Agent-owned ACP connections, retaining workspace routing, per-session modes,
model attribution, question ownership, targeted cancellation and idle cleanup.

Restore remote pending questions and terminal task projections across reconnect
and desktop restart, and preserve accepted ordinary requests during settings
replacement while cancelling expert-team parents with their replaced scheduler.
Extend regression coverage and Agent type checks. Record measured resource and
real-model validation results, including failures and limitations.

Also include the conversation media-generation design drafts (not an implemented
feature), documentation entry links and dedicated Linux test-directory guidance.
Desktop and Agent changes must be delivered together for shared process results.

Validation: typecheck and lint passed; staged content and documentation links
checked. Prior full regression and live-model evidence are recorded in progress
notes; no new full test suite or model calls were run for this commit.

Release note: 多项目会话现在复用兼容的 OpenCode 和 DeepSeek Harness 进程,减少重复启动并保持工作区、工具和取消隔离。修复远端问答在断线、重启及配置更新后的恢复与状态同步问题,Desktop 与 Agent 需配套更新。
2026-09-15 08:14:42 +08:00

7.6 KiB
Raw Blame History

行为规则

状态:设计草案。此文是模型选择、切换与生成状态的权威定义。

首期适用规则

阶段范围以产品需求为准。以下 L-1 至 L-5 保留完整目标,首期按这些限定执行:

  • L-1:只在直连文本 Model Runtime 暴露图片工具;未接入的 Runtime 或无工具模型显示限制,沿用已有直连图片工作流,不新增显式生成入口。
  • L-2:新建图片按“本次明确指定 > 全局默认”选择;编辑按“本次明确指定 > 原成果模型 > 全局默认”选择。只有前一项未设置时才查下一项;选定模型失效时提示改选。
  • L-3:提交时固定生成模型、连接参数、素材和原会话。首期没有会话级生成选择;新请求在实际提交时解析默认值。切换到未接入的 Runtime 只影响后续自动调用,不取消已提交操作。
  • L-4:对图片请求复用进行中、已完成、失败和已停止等待的状态表达,保存成功后才完成,不预建视频任务状态机。取消后若仍取得成果,更新原卡片并说明取消未生效。重启后未完成记录显示结果未确认,不查询恢复或自动重提。人工重新生成创建新操作;首期不提供独立保存重试。
  • L-5:图片成果引用、无视觉模型的文字上下文及会话归属规则全部适用。

能力与调用时点

L-1(FR-1、FR-3、FR-7、FR-9;US-01、US-08、US-11):会话自动生成需要模型连接允许调用、对应协议可执行、Runtime 能暴露工具、聊天模型支持工具调用,并且请求处于 Execute。Skill 只描述这些真实能力。无工具能力时,显式生成入口直接调用同一服务;Ask 下生成入口不能绕过只读限制。

请求开始和聊天模型、Runtime、配置切换后重新计算可用能力。运行中的聊天回合保留原有工具协议,Main 在真正提交生成前检查最新可用性。这样已关闭的模型即使残留在该回合的工具列表中,也不能接受新操作。

模型和素材选择

L-2(FR-2、FR-5;US-02、US-03、US-05、US-07、US-14):先确定生成类型和操作意图,再按下表选模型。图片与视频的默认值独立保存。

操作 选择优先级,由高到低
新建图片或视频 用户本次明确指定 > 当前会话明确选择 > 全局默认
编辑历史成果 用户本次明确指定 > 当前会话明确选择 > 原成果模型 > 全局默认

只有较高优先级未设置时才查看下一项。已选目标被删除、关闭或不支持所需操作时,要求改选,不能静默跳过。没有默认值时由用户选择,可以同时设为默认;名称歧义必须解析到唯一连接后再提交。LLM 不得无依据地填写模型 ID。

显式附件或明确点选的成果优先。用户使用“刚才那张”等明确指代且仅有一个匹配对象时才引用历史图;多义指代先澄清。新建不相关图片不附带旧图。图生视频复用素材引用,但按视频模型选择顺序处理,不沿用图片模型。

编辑能力不足或原图缺失时保留输入并提示。新工具路径不自动将编辑降为纯文生图;用户可以明确选择按文字重新生成。已有直连路径的降级规则仍见图片技术设计。

切换规则

L-3(FR-4;US-03 至 US-06、US-11):生成服务接受提交时固定所属会话、触发消息、实际生成模型、生成参数与素材引用。用户尚未发送的草稿使用发送时配置;已发送且排队的请求保留会话选择,跟随全局默认的选项在实际提交时解析。该时点以后不再重选模型。

变化 未提交操作 已提交操作与成果
切换聊天模型 下一回合使用新模型及其可用工具 不改变生成模型;原回合按 Runtime 切换机制结束,操作独立继续
切换 Runtime 下一回合按新 Runtime 的工具接入能力执行 不依赖旧 Runtime 进程;不向新进程补发未配对的旧工具响应
切换全局默认 跟随默认的操作解析新默认 继续原模型
切换会话生成模型 后续操作使用新选择 继续原模型
关闭或删除生成连接 拒绝该连接的新操作,提示改选 已发请求尽力完成;若后续查询所需连接已失效,显示无法继续查询
更改地址、凭据或请求参数 新操作用新配置 当前操作不混用新端点;重启后连接已改变则提示无法继续原操作
离开或重开会话 会话选择独立保留 只更新所属会话,不能写入当前打开的其他会话

切换聊天模型不会自动取消媒体生成。“停止回复”只结束当前文字回合;生成卡片的“取消生成”单独处理已提交操作。切到 Ask 不撤销先前 Execute 已提交的操作,也不允许新增生成。

操作状态

L-4(FR-6、FR-8;US-04、US-09、US-10、US-13):状态描述应用实际知道的事实。上游没有百分比时,只显示阶段及已等待时间。

状态 进入条件 后续处理
提交中 已接受操作,正在发送 获得上游响应后生成中或保存中;失败保留原因
生成中 上游已接受、尚无最终成果 查询状态或等待响应,结果返回后保存中
保存中 已获得成果,Main 正在校验和保存 本地成果及引用保存成功后才完成
已完成 成果可从会话重新读取 终态,后续编辑或重试创建新操作
取消中 用户请求取消、等待终止结果 上游确认停止后已取消;若已完成则展示成果并说明取消未生效
已取消 本地已停止等待或上游确认取消 区分“已停止等待,上游可能继续生成”与“生成已取消”
失败 上游明确失败或成果保存失败 提供失败原因及适用的重试入口
状态待确认 提交响应丢失、断连或应用重启,无法确认上游结果 有上游 ID 时查询;不能查询时提示用户,不自动重新提交

同一操作的重复状态通知只能更新同一记录。取消后的晚到结果不恢复旧工具回合,不自动开始下一次生成。若仍能取得成果,可在原卡片标明“取消未生效,已生成”并展示。超时不等于上游取消,不承诺退款。

重新生成创建独立操作,沿用旧操作的模型和输入,提交前检查可用性;用户改选模型后将新选择显示在新尝试上。保存失败且上游成果仍可读取时,“重试保存”使用原操作 ID,由失败回到保存中并更新原卡片,不再次提交生成。无法确认上游是否接受的请求,不做自动生成重试。

L-5(FR-5、FR-8;US-07、US-12):历史上下文传成果引用、提示词及实际模型信息。只有具备视觉输入能力的聊天模型才接收适用的图片内容。不能以“有成果引用”推断模型已经看过图片。删除会话沿用已有确认流程,并说明活动生成的取消及不能保证上游停止的情况,删除后晚到结果不能重建会话。

完整性与待定项

已覆盖首次配置、模型选择、历史编辑、模型与 Runtime 切换、只读模式、失败、取消、重启和成果归属。无产品规则需要在本次文档交付前补充确认。

视频服务商、协议、取消与查询能力、可接受的文件限制属于实施前的技术选型。远程 Runtime 的工具往返需要原型验证;无法接入时按 L-1 提供显式入口,不把工具接入状态写成已支持。跨设备同步、应用退出后的本地执行不在本次范围。