Sense v0.4.7 - IME Agent, terminal, and browser
Sense v0.4.7 — Agent 工作台、终端与浏览器
Agent 入口崩溃热修(2026-08-04)
- 修复点击工具箱 Agent 后 IME 窗口退出:Compose 的 WindowRecomposer 会从实际 window root 查找 LifecycleOwner,现于子 ComposeView 挂载前补齐 Lifecycle、SavedState 与 ViewModel owner。
- owner 仅在窗口根缺失时安装,IME View detach/release 时清理,保持后台 Agent 运行所有权不受前端页面切换影响。
- 新增 IME window 宿主回归测试,覆盖 Agent 页首次 attach、measure、layout 与 draw 的完整入口路径。
输入法前端 Agent 修订(2026-08-04)
- Agent 对话页进入
SenseInputMethodService.onCreateInputView()返回的统一根 View;不再通过设置页或替换 IME 窗口打开。 - Reading 页面与 Sense 键盘由同一根容器切换;点击内嵌输入框后,Agent 页面和原生 Sense 键盘同时显示,输入框可单独收起。
- 移除 IME Service Context 对
WindowManager.currentWindowMetrics的依赖,并在创建 Compose 内容前安装稳定的 Lifecycle、SavedState 与 ViewModel ViewTree owner。 - Agent 前端状态与宿主编辑器重启事件分离;切换输入框、IME 隐藏/恢复和输入 View 重建会重新投影同一 Agent 页面。
- Brain Service 保留有界 run replay,IME 进程重建后可重新订阅;跨进程原子 durable-run 记录恢复用户消息与终局回答。
- 普通键盘态新增 Agent 运行浮条,支持返回任务和立即停止;运行通知继续提供停止入口。
- 发布 APK 继续使用
Sense Release v1正式证书签名。
版本
- Tag:
v0.4.7 - Android:
versionCode 32,versionName 0.4.7 - 发布资产:
Sense-v0.4.7.apk - 平台:Android 10+(
minSdk 29,targetSdk 36) - 发布性质:GitHub Stable Release
- 项目许可:GPL-3.0-only
Agent 工作台
- 键盘工具箱新增 Agent 入口,并在当前输入法根 View 内打开完整对话页。
- 工作台提供 Agent、终端、浏览器三个页签;Agent 对话支持连续消息、流式预览、停止任务、开始新会话和 Token 用量显示。
- 对话记录以有界、原子文件保存在同一 Agent session 中;Activity 重建或离开界面不再自动终止正在执行的任务。
- 新增
ASSISTANT_MESSAGE结果模式,普通问答直接返回自然语言,不再要求模型把每次回答包装成编辑器 Patch。 - 输入法内的自然问答显示结果卡,可选择应用到编辑器、复制或关闭;编辑类 Skill 继续沿用 hash/CAS 与写后验证。
后台执行与生命周期
- 前端 Agent 位于
:ime,Brain service 位于独立:brain进程;前端只订阅投影,运行所有权由持久服务保存。 - 用户发起长任务后升级为带通知的前台服务,并使用有界 partial wake lock 保持工具循环和流式输出。
- 通知可返回 Agent Hub 或停止当前任务;任务完成后释放前台状态和 wake lock,并发布完成通知。
- 会话、工具调用和 UI 使用同一个稳定 session identity,保证终端工作区、浏览器标签和对话连续一致。
终端
- 新增模型工具
terminal_exec,并在输入法对话的工具坞与详情层展示终端状态和输出。 - 每个 Agent session 使用独立的应用私有工作区与
HOME;cwd只接受工作区相对路径并执行 canonical containment 检查。 - 命令通过 Android
/system/bin/sh以应用 UID 执行,支持独立 stdout/stderr、退出码、1–60 秒超时和超时终止。 - stdout/stderr 分别有 24 KiB 上限与截断标记,工具结果使用紧凑 JSON,避免长输出持续占用模型上下文。
浏览器
- 新增模型工具
browser_use,支持navigate、snapshot、click、type、back、forward与reload。 - Agent 使用 session-owned WebView:Cookie、历史和 DOM 状态持续保留;用户打开浏览器页签时接管的正是同一个 WebView。
- DOM snapshot 提供当前 URL、标题、正文摘要和可交互元素编号;模型可按编号点击、输入并提交表单。
- WebView 使用独立进程数据目录,开启 JavaScript 与 DOM Storage,关闭文件/内容访问并阻止 mixed content。
- 浏览器标签池、正文、元素数量、脚本等待和导航等待均采用明确上限。
Agent 协议与工具控制
terminal_exec与browser_use进入稳定工具 ID、模型 schema、严格参数解码、设置开关和 exact admission mask。- 工具调用携带稳定
sessionId,而requestId继续标识单次 run,两者职责分离。 - 模型猜测隐藏工具、提交格式错误参数或调用未启用工具时,Brain 将紧凑 typed error 作为 tool result 回送并继续当前对话,减少整轮修复重试带来的 Token 消耗。
- Agent 终局事件新增普通回答通道并完整穿过状态机、IPC codec、recorder、客户端和 UI;旧的编辑器 Patch 通道保持兼容。
验证与签名
- 新增终端路径隔离、会话编解码、浏览器/终端参数路由、工具 schema、设置迁移、执行器 session 传递和自然回答状态机测试。
- 发布门禁继续覆盖 Python 资产验证、全部 JVM/Android 单元测试、AndroidTest APK 编译、Lint、M0–M7 性能基准、运行时边界、APK 对齐、包元数据与签名。
- 继续使用
Sense Release v1固定签名,可从此前同签名版本直接覆盖安装。
证书 SHA-256:76db888ff42b04d52d4d19a573fe8f8df2fa3af0ab36bd6a08c6f70a8aace984