fix: stabilize ACP Harness chat in 0.5.8.16 - #503
Open
wuzw21 wants to merge 66 commits into
Open
Conversation
* Fix Responses assistant content type * Fix WebChat heterogeneous JSON responses --------- Co-authored-by: 刘松源 <liusongyuan@liusongyuandeMacBook-Pro-4.local>
- 在README和README.zh-CN.md中将微信群二维码链接指向新的公共URL - 添加社区二维码上传和替换功能到admin控制台界面 - 实现GET/HEAD /community/wechat-qr端点提供永久公共图像URL - 实现GET/PUT /admin/community/wechat-qr端点用于管理二维码图像 - 支持JPEG、PNG、WebP格式,最大5MB文件大小限制 - 添加ETag缓存控制和内容类型检测功能 - 更新admin UI添加社群二维码管理页面和相关样式 - 添加相应的测试用例验证功能正常工作
- 添加全屏触摸穿透彩虹光晕并适配系统栏与真实屏幕圆角 - 为点击、长按和滑动增加坐标动画与系统触觉反馈 - 同步截图、暂停和任务结束时的反馈窗口生命周期
* feat: host agent tasks in unified task runtime * feat: make task runtime durable across process restarts * fix: stop gui on display off and recover agent runtime * feat: expose mobile capabilities to agent harnesses * feat: unify agents on official ACP runtime * fix: treat Xiaowan as built-in default agent * fix: restore Xiaowan ACP streaming and deduplicate agent * refactor official ACP provider adapters * fix ACP provider mapping and model visibility * hide private plugin tools from ACP MCP surface * enable official DSH skill discovery on Android * fix onboarding model discovery * fix ACP agent lifecycle and streamed turn completion * fix startup crash and preserve default model * fix mobile DSH official filesystem runtime * fix empty provider and agent pages * use official DSH project skill layout * install the official Claude ACP adapter * prevent MCP port conflicts from crashing startup * persist official ACP events and recover MCP startup * isolate ACP output by official turn * map shared provider into official OpenCode and Claude config * add normal-package device validation build * fix: align ACP models with active provider * fix: select shared provider for device agents * fix: map Claude ACP to official DashScope endpoint * fix: keep startup and provider models available * fix: include ACP session compatibility boundary * fix: unify Xiaowan with ACP agent selection * fix: use official DSH model catalog and MCP agent menu * fix: align ACP workspace and Xiaowan fallback * fix: preserve concurrent Xiaowan ACP stream events * fix: make VLM and OmniFlow phone control opt in * fix: install OmniFlow runtime without enabling VLM tools * fix: keep gated VLM entry visible * fix: allow LLMTHU bootstrap in device debug * fix: unify ACP provider model routing * refactor: complete ACP agent migration * feat: enable VLM plugin by default * fix: keep first chat message during bootstrap * fix: implement resident OOB observation stabilization * refactor: unify ACP runtime and remove legacy agent paths * fix: stabilize ACP harness lifecycle and model adapters * fix: ignore stale agent switch targets * fix: install complete DSH CLI at runtime * fix: unify Provider model catalog and release 0.5.8.5 * chore: prepare release 0.5.8.6 * fix: include DSH plugin manager in release source * fix: restore ACP and plugin runtime lifecycle * refactor: run native capabilities without internal MCP * fix: guard agent switches on provider readiness * test: align closed stream completion contract
- 根据真机屏幕轮廓裁剪返回页面,并完善全宽滑动、视差和遮罩效果 - 让手势进度跟随触摸,使用临界阻尼弹簧完成提交与取消动画 - 新增屏幕圆角通道及相关原生和 Flutter 测试
- 在手势结束和路由销毁时可靠释放 Navigator 手势状态 - 使用轻量遮罩替代全页透明度合成,并补充交互回归测试
- 根页面按页内状态动态交还系统返回手势,保留引导、模型选择器和工作区返回处理 - 后台异步完成会话并移除手动退后台通道,避免阻断系统动画
perf(back): 优化预测性返回动画并提升流畅度
feat(omniflow): 增加 GUI Agent 操作反馈 UI
- 替换启动画面背景颜色从深色(#151617)改为浅色(#F4F7FB) - 添加深色主题专用的启动图标资源文件 - 更新Android 12+启动屏幕API配置以支持浅色主题 - 调整状态栏和导航栏的明暗模式设置 - 更新应用图标背景颜色适配浅色主题 - 移除启动画面中的居中图标布局配置
- 在代理模式设置页面中,使用 SettingsDetailSheet 替换 AlertDialog - 在账户生命周期管理中,使用设置详情弹窗替换会话撤销确认对话框 - 将宠物悬浮窗权限提示组件重构为无状态组件,并复用权限提示卡片 - 在手动录制权限守护中,使用统一的权限提示弹窗组件替代原有的导航跳转方式 - 在设置页面中使用设置详情弹窗显示 MCP 信息
- 移除PluginDetailPage中阻止返回的手势控制,因为路由已使用 PredictiveBackGestureWrapper,需要保持可返回状态以支持Android系统手 势交互 - 修改PluginMarketPage中的数据刷新逻辑,当通过系统返回手势退出详情页 时也会触发数据刷新,确保详情页的变更能够正确显示 - 更新测试用例以验证预测性返回手势功能和系统返回时的数据刷新机制
- 移除了agent_mode_setting_page中多余的完成按钮 - 调整了settings_detail_sheet组件的布局结构,使用SizedBox包装SafeArea - 添加了footer区域的支持,并调整了间距布局 - 更新测试用例,移除对完成按钮的查找断言 - 修改测试点击方式,从点击文本改为点击指定位置
Platform model display names
* chore: bump Android release version to 0.5.8.10 * adapt official dsh reasoning to shared acp ui * fix one-click harness and omniflow installation * fix omniflow observation state contract * fix official omniflow function enhancement * fix harness switch provider binding fallback * fix: package verified OmniFlow runtime update * fix: complete ACP and local OmniFlow enhancement flow * fix: synchronize Flutter dependency lockfile * fix: include ACP harness adapter sources
Project Xiaowan-specific presentation metadata and standard ACP content into the existing shared card routes. Preserve interleaved reasoning, usage, retries, resources, images, artifacts, and tool output across Harnesses.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
结论
这是关闭 PR #502 后,基于 0.5.8.16 分支整理的完整 PR。保留统一 ACP 主路和现有卡片 Widget,不恢复小万私有协议;所有 Harness 在提供对应 ACP 信息时共享同一套卡片、时间线和页脚表现。
ACP 标准事件与卡片恢复
聊天表现
Harness 与运行时
main 冲突处理
截至 merge commit 98972cb,已人工逐块解决当时 main 的 5 个文本冲突及 1 个自动合并语义重复:
main 此后又新增了 2 个提交;按当前要求暂不再次合并,因此 GitHub 暂时显示冲突,避免未经人工审查覆盖本分支的 0.5.8.16 功能。
验证
OpenAI Responses 工具名兼容
agent.status、agent/status)进入 Responses 历史input[].name后违反^[a-zA-Z0-9_-]+$、导致turn/failed的问题。ACP 思考交错时间线
思考 1 → 工具 1 → 思考 2 → 工具 2 → 输出的真实 ACP 到达顺序。segment-2/3后缀,避免重新打开已完成卡片。思考卡默认折叠
思考 → 工具 → 思考 → 输出的交错时间线;折叠只影响显示状态,不改变 ACP 事件顺序、卡片身份或历史恢复。