Files
goodbuddy/docs/features/assistant-workbar/runtime-interactions.md
T
mesalogo c8db340cc7 fix: prevent runtime permission stalls and Agent reconnect failures
Execute could stall on workspace-external access or native child-session
permissions, while structured questions could be lost or answered incorrectly.
Route owned OpenCode descendant interactions, correct Continue question and
custom-answer handling, and resolve DSH Execute ACP permissions without a
second approval. Ask remains read-only and unrelated sessions stay isolated.

Restore the required DSH session projection service. Reuse offline OpenCode
configuration by plugin version, remove unused npm shims from remote payloads,
normalize dependency modes, and accept real compound descriptors up to 4 MiB.
Fix intermittent Agent attach rejection and closed-handshake waits.

Add focused and real-Runtime regressions, document interaction boundaries and
validation evidence, and include the existing application/tool navigation
design drafts. Those navigation changes are design-only, not implemented UI.

Validation: full suite 3597 passed, 0 failed, 61 skipped across 338 files;
typecheck, lint, release-note verification, whitespace and relative-link checks
passed. Current-source Linux x64 installation, Ask/Execute, native subagent
external writes, reconnect and stop/bootstrap passed with 10 completed real
model calls, 13 native endpoint tests and 20 consecutive handshakes.
System sleep/wake and release CI packaging remain unverified.

Release note: 修复 Execute 访问工作区外目录或运行原生子代理时卡在权限等待的问题,并恢复 OpenCode 与 Continue 结构化问答的正确转交。修复远程 Agent 安装与重连失败;Ask 仍保持只读,任意终端密码或业务确认不会自动代答。
2026-09-08 11:34:45 +08:00

2.3 KiB

Runtime 交互边界

本文定义当前原生交互的适配范围,不增加工作模式或第二层 Execute 审批。

Runtime 权限确认 业务问答
本机 GoodBuddy 管理的 OpenCode 内部默认配置允许权限;每个 Ask 请求仍使用 deny-all 与显式只读能力。Execute 自动回复属于当前请求的父、子孙会话权限事件,不处理其他并行请求 通过 question.asked 转交父、子孙会话问题,支持原生单选、多选、yes/no、自由文本及跳过;使用公开 ID 回传 question.reply/reject
Continue Execute 启动传入 --auto,剩余原生权限请求按当前模式自动答复 对接 1.5.47 QuizService 的扁平 pendingQuestion,其中 question 是字符串。选项回答与自定义文本分别回传正确的 isCustomAnswer;跳过发送拒绝回答的文本
DeepSeek Harness 固定 Host 的 Execute 文件与命令工具不询问目录权限;若收到 ACP 权限请求,活跃 Execute 直接选一次性允许,缺少该选项时使用 Runtime 提供的允许选项,Ask 拒绝,不等待额外 authorizer 固定 Host 当前未提供通用原生业务问答服务,不把普通模型正文误识别成待答协议。模型以普通回复提问时,用户通过下一条消息回答

托管 SSH OpenCode 的 ACP 权限处理与直接启动配置由 远程主机技术设计定义;本机 SDK 问答适配不代表远程 ACP 已提供相同业务问答接口。

运行与失败

  • 结构化 yes/no 是普通选项,不从日志、自然语言或 Shell 输出猜测用户意图。
  • 前台问题停留在现有问答卡片,保留回答、提交失败提示与跳过入口。
  • 后台任务收到结构化提问时,通过现有 Main 路径明确失败并提示改为前台对话,不永久等待。
  • 请求结束或取消后清除对应待答映射;过期回答明确报错,不转交给后来的请求。
  • 任意终端程序的密码、OAuth 登录、许可证确认或 stdin 提示不自动回复 yes。这类程序应 使用其非交互参数,或由用户在终端完成;不能把权限确认和业务决策混为一谈。Shell 工具保留其现有取消与超时,不新增日志解析或通用交互代理。

实现与真实 Runtime 验证证据见进度记录。