Skip to content

Sense v0.4.7 - IME Agent, terminal, and browser

Choose a tag to compare

@EthanBird EthanBird released this 04 Aug 01:55

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 32versionName 0.4.7
  • 发布资产:Sense-v0.4.7.apk
  • 平台:Android 10+(minSdk 29targetSdk 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 使用独立的应用私有工作区与 HOMEcwd 只接受工作区相对路径并执行 canonical containment 检查。
  • 命令通过 Android /system/bin/sh 以应用 UID 执行,支持独立 stdout/stderr、退出码、1–60 秒超时和超时终止。
  • stdout/stderr 分别有 24 KiB 上限与截断标记,工具结果使用紧凑 JSON,避免长输出持续占用模型上下文。

浏览器

  • 新增模型工具 browser_use,支持 navigatesnapshotclicktypebackforwardreload
  • Agent 使用 session-owned WebView:Cookie、历史和 DOM 状态持续保留;用户打开浏览器页签时接管的正是同一个 WebView。
  • DOM snapshot 提供当前 URL、标题、正文摘要和可交互元素编号;模型可按编号点击、输入并提交表单。
  • WebView 使用独立进程数据目录,开启 JavaScript 与 DOM Storage,关闭文件/内容访问并阻止 mixed content。
  • 浏览器标签池、正文、元素数量、脚本等待和导航等待均采用明确上限。

Agent 协议与工具控制

  • terminal_execbrowser_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