Repository navigation
Releases
v5.3.20
EtaExpressive v5.3.20
基于 main 顶端(34 个提交),在 v5.3.19 之上的中等版本迭代:核心是远程智能体接入局域网服务器(自研协议 + OpenCode v2),配套全库间距节奏收敛与 M3 官方槽位统一。
Features
- 远程智能体:局域网服务器连接、管理与诊断(1fe32961b);升为侧栏胶囊,断线提示并入输入框状态胶囊(7b8231c1c)
- 远程协议目录化:注册表单点接入、可选方法给语义默认、协议名进服务器配置行(69a9bb1cd);接入 OpenCode v2 作为第二远程协议(1fc8dfd34)
- 服务器编辑独立成页:表单 + 协议 + 连接诊断,入栈转场(7d69dad27)
- 自动重连到上限判死:胶囊重试钮与点会话行触发复活(ab3ab23bf)
- 生成中可切换模型/助手,下一轮生效(f6d6433f9);回复自动朗读的会话与运行身份判定(d2e1a5310)
- 媒体检索:索引代数 + 三级缓存,匹配度阈值下推为检索时参数(ab903f278);切分类走本地筛选不再重搜(426bbd2e5)
- 滚动截断统一用 DstIn 蒙版淡出,并修掉主对话流黑带(3f8b1caca);使用统计热力图补边缘淡出(3971ee393)
Fixes
- 日程门禁从「设备控制」迁到「个人数据」(aed4d6867)
- 多选勾选行走官方
checked变体,恢复选中形状 morph 动画(fe0fe97d4) - 提问卡并入工作组分段列表,相接圆角随相邻行取内圆(abbe7ac0d)
- 重连分割线断开组内分段列表,断点两侧取段末/段首大圆角(d26610b90)
- 修复 CI 编译报错:补
GuiControlChanged分支、clearTextdisplayId 与准入会话声明(a9bece774)
Performance
- 媒体模型文件校验加指纹缓存,消除每次 embed 与状态查询的全量 SHA-256(c2d60a5d2)
Refactor
- 间距节奏全库收敛与结构统一(95b38d788、ae5b323a0、e60bee068);列表行字阶与配色交给官方槽位默认(07a95b6c3)
- 工具能力收拢为「一张卡一个开关」,分组开关移出设置页(9391aba3f、ef6738809)
- 用户气泡图片条改普通横滚加两端淡出,退役非收纳轮播(f81495b8a)
Build
- 单测 worker 堆提到 2GB、Gradle daemon 提到 3GB,解决 Robolectric 与 PTY 用例共用 512MB 堆导致的无限期停滞(74ec3c6a7)
Full Changelog: v5.3.19...v5.3.20
v5.3.19
EtaExpressive v5.3.19
基于 main 顶端(24 个提交),在 v5.3.18 之上的小幅迭代,重点补齐后台虚拟屏基建、会话分页与多项终端/UI 稳定性修复。
Features
- 后台虚拟屏基建:新增三条创建通道、画布路由策略,GUI 工具支持按屏操作(5cc5ca67e)
- 运行准入与 GUI 操作权互斥:
launch_app/open_uri智能画布分流,新增present_to_user主屏移交(f9cad7337) - 会话展示分页数据层:按
sort_index窗口加载与边界保存,未加载历史不被覆写(e6885cd39) - 标题每轮刷新与手改保护;
history工具失败文案改走资源本地化(5cac2b045) - 排队消息可直接移除:输入条队列项带关闭按钮(fa0322157)
- 主页输入条接入排队消息移除(176a5ca3b)
- 分段行支持长按无障碍标签(会话/多选入口),工具组加载提示改用专有文案(71cabea50)
- 工具分组改可展开分段卡(M3 expand & collapse)(c8c4817e2)
- 媒体搜索批量操作改官方浮动工具栏,阈值移入底部弹层(c4c18d80f)
Fixes
- 终端控制台流式 UTF-8 解码:PTY 读块劈开多字节字符不再乱码(e2113ae04)
- 终端 ANR 修复:会话创建与回收移出会话锁,store 状态表加锁(8f59a645a)
- Linux 环境安装改 App 级作用域,离开页面不再中断安装(d2e8ff9fc)
- Linux 环境页状态读盘移出组合期,校正前按检查中呈现(ebbc7aa8f)
- 浏览器工具栏滚动桥差量放 consumed 位,修复顶栏不跟随滚动(db6cba2c5)
- 回答折叠分轮处理:旧轮生成中保持收起,最新轮停下才收(1f7b3f065)
- Systemizer 安装失败文案改走资源本地化(6083de8e0)
- 设置页说明收进行内摘要、语音面板与图框同心圆角,三语零散文案校对(4e89adfca)
- 繁体资源文件用语校对(权限/侦测/处理程序等)(ffdaf1bcd)
Performance
- 终端块只渲染尾部窗口,排版成本与输出总长解耦(051f860e9)
- AnsiText 行覆盖不再全串回扫,修进度条输出 O(n²) 卡顿(201bc3ee8)
- 终端输出改增量读取,目录列表一次 stat 批量出(308bf2d52)
Refactor
- 问答卡迁到官方
SegmentedListItem,拆除旧工作卡外壳(ae6552ed9) - 媒体索引设置页说明文案收进行内摘要(da1079f81)
Build
- 更新
.gitignore忽略临时文件和工作目录(b4bad7f53)
v5.3.16
v5.3.16 — 2026-10-28
主要改进
-
工具权限分层与危险操作逐次确认:文件与命令拆成三档权限,命令执行可单独关闭;敏感读拆成「个人信息」与「设备状态」两档;工具页分组加内联开关,可就地收紧能力域;危险操作确认改由模型用
ask_user提问并配套一次性授权闸门;低频管理工具折叠成按需打开的域,每轮平均少约 2.9k token。 -
按助手的工具开关:工具开关与记忆 / 技能同级,每个助手可单独收紧能力域,且只能由用户放宽、模型不得重新打开。
-
运行性能优化:请求解码改走有界线程池,饱和时返回明确错误;模型侧工具描述改为英文,每轮固定前缀少约 6.5k token;幂等只读工具批次并行执行,事件与历史仍按模型顺序;历史字符数与词元数改为增量维护,媒体裁剪不再整段深拷贝;能力快照不变时复用上一轮的工具目录与系统消息。
-
日程与闹钟管理工具:新增日程与闹钟的增删改查管理工具,并修复相关的编译错误与迁移版本冲突、索引校验。
-
子代理配置迁移到设置页预设组:子代理配置从会话内协作弹窗迁移到设置页的预设组;子代理委派加独立开关;统一子代理设置弹窗与预设组详情页的行卡片形态,枚举选择统一改为内联下拉 / 单选面板。
-
备份页重构:备份改为分类勾选 + 一对导入导出按钮,补齐配方与网页工具配置,密钥默认脱敏。
-
安全修复:
wifi_credentials默认只返回网络名,密码改为显式请求。 -
UI 一致性:助手 / 文件夹 / 技能 / 配方的新建入口统一从顶栏图标钮换成 MCP 页同款 FAB;菜单气泡按类型分档,多段菜单改用分割线;分组开关行改用标准分段开关行;工具配方页补充步骤、参数与工具信息分区。
-
标题与语音修复:标题生成挪到首轮回复后,结合问题与助手回答,并重写提示词、写死素材 / 指令边界;入口浮窗先取真实外观再建窗,避免深色用户首帧闪白;图片解码协程销毁后不再写 state,消除 Markdown 布局测试的偶发崩溃。
Improvements
-
Tool permission tiers & per-approval dangerous ops: file & command split into three tiers with command execution separately toggleable; sensitive reads split into "personal info" and "device state"; in-page grouped switches to tighten capability domains; dangerous actions now go through model
ask_userwith a one-shot authorization gate; low-frequency management tools folded into on-demand domains (~2.9k tokens fewer per round). -
Per-assistant tool switches: tool toggles are peer to memory / skills, each assistant can only tighten its domain, and only users can widen (the model may not re-enable).
-
Runtime performance: request decoding on a bounded thread pool with explicit saturation errors; model-side tool descriptions switched to English (~6.5k tokens fewer fixed prefix per round); idempotent read-only tools batched in parallel while events & history keep model order; history char/token counts maintained incrementally (media trimming no longer deep-copies); tool catalog & system message reused when the capability snapshot is unchanged.
-
Schedule & alarm management tools: added CRUD tools for calendar and alarms, plus fixes for their compile errors, migration version conflicts and index validation.
-
Subagent config moved to settings presets: subagent config moved from in-conversation dialogs to settings preset groups; subagent delegation gets an independent switch; config dialog & preset detail unified to the same row-card shape; enum selections unified to inline dropdowns / bottom-sheet radio.
-
Backup rework: backup now uses category checkboxes with paired import/export buttons, completes recipe & web-tool config, and masks secrets by default.
-
Security fix:
wifi_credentialsnow returns only the network name by default; the password is requested explicitly. -
UI consistency: new-entry entry points for assistants / folders / skills / recipes unified to the MCP-page FAB; menu bubbles bucketed by type with dividers for multi-item menus; grouped switch rows moved to standard segmented switch rows; tool recipe page gains step/parameter/tool-info sections.
-
Title & voice fixes: title generation moved to after the first reply (combining question & answer) with rewritten prompts and hardcoded material/instruction boundaries; voice entry floating window reads the real appearance before building to avoid a first-frame white flash for dark users; image-decoding coroutine no longer writes state after disposal, fixing an intermittent Markdown layout test crash.
v5.3.15
v5.3.15 — 2026-10-23
主要改进
-
工具链大扩展(日程 / 闹钟 / 系统控制 / Root 接管 / 模型自进化):新增日历与闹钟的增删改查、铃声 / 勿扰 / 亮度 / 音量等设备控制,Root 接管与私有数据库直读(通话记录、健康数据等),以及模型自写工具能力——模型可用
eta_author_tool声明式创建「配方」(HTTP / Root 命令 / Settings / 文件 / ContentProvider / 组合,白名单步骤),落盘可审计、下一轮生效,eta_list_recipes管理与消歧。 -
图片预览改浮动工具栏:全屏查看图片 / 视频时底部改为 M3 Expressive 官方浮动工具栏,五个动作:保存、复制绝对路径(
minis:////workspace/content://统一折算宿主路径)、添加到对话(把回复里的图继续作为附件发问)、其他应用打开、分享;多图画廊顶部新增「x/y」页码指示。 -
抽屉改浮动工具栏并新增文件夹管理页:会话抽屉收敛为浮动工具栏形态,新增独立的文件夹管理页面。
-
全局记忆总开关与一站式总览:新增一键关停全部记忆读写的总开关,并提供记忆总览页集中查看 / 管理已存记忆。
-
离线语音识别默认改用 SenseVoice,并接入 Silero VAD 断句:离线转写默认模型切换为 SenseVoice,配合 Silero VAD 自然断句,识别更快、断句更准。
-
唤醒落点可配置:电源键 / 系统助手唤起后可选择直达语音或键盘输入,并按落点给触觉反馈;屏幕上下文新增翻译 / 加日程 / 整理三个一键预设;全应用进出场动画统一到 M3 Expressive MotionScheme 规格。
-
流式文字到达即显现:去掉打字机排队等待,token 一到就渲染,长回复不再滞后。
-
设置项交互统一为行内下拉菜单:子代理草稿表单(职责 / 思考 / 分辨率 / gpt 速度)与系统助手接管页选择行改为官方行内下拉,顶栏会话名改用官方 SplitButton 并启用胶囊形变。
-
修复与健壮性:激进折叠档补齐整轮折叠(已作答提问卡并入同一张卡片);端侧动作模型与对话模型上下文隔离;媒体索引结束后前台通知正确消失;语音态胶囊衔接半透明发虚修复;回复中图片 / 文件链接提示词强化且链接可辨识。配方与闹钟工具层此前从未编译通过的类型错误全部修复;图标尺寸散落硬编码统一替换为 EtaDimens 与官方令牌。
Improvements
-
Toolchain expansion: calendar / alarm CRUD, device controls (ringer, DND, brightness, volume, Wi-Fi…), Root takeover and private database readers (call logs, health data), plus model self-evolution — the model can author declarative "recipes" (
eta_author_tool: HTTP / root shell / settings / file / content-provider / compose steps, whitelisted) persisted on disk for audit and callable as tools from the next turn;eta_list_recipesfor management and ambiguity resolution. -
Floating toolbar for full-screen image/video preview: save, copy resolved host path (
minis:////workspace/content://), add back into the conversation as a pending attachment, open with another app, and share — in one M3 Expressive floating toolbar, with an "x/y" page indicator for galleries. -
Drawer becomes a floating toolbar and a standalone folder-management page is added.
-
Global memory master switch with a one-stop memory overview page.
-
Offline speech now defaults to SenseVoice with Silero VAD sentence segmentation.
-
Configurable wake destination: power-key / assistant entry can land on voice or keyboard with haptics; new screen-context presets (translate / add event / tidy); app-wide enter/exit animations unified to M3 Expressive MotionScheme specs.
-
Streaming text renders on arrival — typewriter queue removed.
-
Settings interactions standardized to inline dropdown menus (subagent draft form, assistant takeover picker), and the top-bar session name uses the official SplitButton with pill morphing.
-
Fixes: aggressive-fold collapses the whole turn incl. answered question cards; on-device action model context isolated from the chat model; media-index foreground notification clears properly; voice capsule transition translucency fixed; image/file link prompts strengthened and links distinguishable. Type errors in the recipe/alarm tool layer (never compiled before) are fixed; hardcoded icon sizes replaced with EtaDimens and official tokens.
v5.3.14
v5.3.14 — 2026-10-22
主要改进
-
AI 回复支持展示图片:回复里的 Markdown 图片此前只有部分来源能渲染。本次打通来源解析——
/workspace、/var/minis、minis://、file://经 LinuxGuestPathResolver 折算到宿主(与read_image同一映射),Linux 工具环境里生成的图片无需拷贝即可展示;无 scheme 的相对路径按工作区根解析;行内渲染与画廊预览的判定统一到同一来源白名单;提示词在read_image段落补充了贴图语法,模型被明确告知可以贴图。 -
端侧设备动作模型:接入 FunctionGemma 270M Mobile Actions——ModelScope / Hugging Face 双源下载(校验、取消、令牌管理),注册
device_actions工具,把英文指令变成手电筒、联系人、邮件、地图、Wi-Fi、日历六类真实设备动作;设置页管理模型与推理后端(Auto/GPU/CPU),独立试用页可直接下发指令。R8 保留反射面与 LiteRT-LM 原生库声明。 -
回答后自动收起思考与工具步骤,并升级三档分级:一轮回复的正文一出现,同轮排在它前面的思考与工具组整组收进「已完成 N 个步骤」卡片,点一下仍可展开;手动展开过的组不再被自动收起。折叠行为从布尔开关升级为三档(激进折叠 / 普通折叠 / 不折叠):激进档按真实用户消息划轮,本轮最终回复之前的中间回复与痕迹并进同一张工作卡片,问答卡、建议芯片与流式回复保持可见,整轮没有正文则不收。
-
媒体检索批量操作与阈值偏好:检索页补多选(全选 / 反选 / 退出多选)与批量移动 / 复制(目录选择器 + SAF 授权持久化 + 二次确认,部分失败按条数汇总);新增
set_threshold工具与相似度阈值滑杆共用同一偏好,search省略min_score时按偏好过滤;新增batch_act工具支持按source_keys或现场检索后批量执行。 -
语音设置改个人音色子页结构:删除旧 SpeechSettingsScreen,「我的声音」内豆包 / Mimo 音色独立子页(复用 NavHost 入栈 / 出栈转场);豆包音色表单样式与点按触感统一;语音入口策略、模式控制器补充联动开关。
-
子代理设置改预设详情页:预设编辑从行内改成独立详情页,设置页只留列表与入口;资料配置弹窗拆出任务分工 / 思考档位 / 分辨率 / gpt 速度子页。
-
输入区与跟底动效:输入条工具按钮收敛进两级选择器,只留常用操作;跟底时新长行的上提从逐帧限速改为缓动追赶,新行从静止线下方滑入,不再整行硬跳。
-
模型备份自动发现端侧模型目录:除语音 / 向量清单外,自动发现
noBackupFilesDir/<kind>/<id>/<revision>/三级布局下的完整模型目录(如动作模型),导出时现场计算哈希;半下载目录跳过,符号链接不打包;恢复只刷新真正被写入的类型。 -
宽屏界面:侧栏改标准 side sheet 固定宽度并排,不再提供覆盖抽屉形态;新建 / 选择会话不再无条件收起侧栏;二级页内容列居中限宽,汉堡按钮改独立 toggle 回调。
-
图片组改横向轮播:图片行改用整条聊天区宽度等比适配,每张一样大、整组两端完整;缩到 64dp 下限仍放不下才横向滚动,与文件行解耦。
-
安全收紧:网络安全配置默认禁明文,仅放行本地回环(localhost / 127.0.0.1 / ::1),保住 OAuth loopback 回调与本地 Linux 服务——行为变更:显式配置的远程
http://模型端点将不可用,需改用 https;OAuth 登录页禁用混合内容。 -
i18n 硬编码清理:枚举与 provider 层只保留协议值和
@StringRes引用,展示文案一律在 UI 边界按当前语言解析;媒体源推荐 label、Root、Model ID、压缩摘要标签、会话导出系统状态等硬编码全部改为字符串资源,新增 27 个 key,简 / 繁 / 英三语言同步落地。 -
浏览器设置子页转场:设置页与浏览器共用同一个标签池不能拆路由,改为页内覆盖层——设置页侧滑进入、底层浏览器四分之一屏视差,时长与 NavHost 一致,支持 RTL 镜像。
Improvements
-
feat: Markdown images in AI replies now resolve across all sources.
/workspace,/var/minis,minis://andfile://paths are mapped to the host via LinuxGuestPathResolver (same mapping asread_image), so images produced inside Linux tool sessions render without copying; schemeless relative paths resolve against the workspace root; inline rendering and gallery preview share one source whitelist; the system prompt gained explicit image syntax guidance. -
feat: On-device action model (FunctionGemma 270M Mobile Actions) — dual-source download (ModelScope / Hugging Face) with checksum verification and cancellation, a
device_actionstool turning English instructions into six real device actions (flashlight, contacts, email, map, Wi-Fi, calendar), settings management with Auto/GPU/CPU backend selection, and a standalone try-out page. -
feat: Thinking and tool groups of a turn auto-collapse into a "N steps done" card as soon as the reply body appears (manually expanded groups stay open); folding upgraded from a boolean to three levels (aggressive / normal / off), with aggressive mode merging intermediate replies and traces of the turn into one work card while keeping Q&A cards, suggestion chips and streaming replies visible.
-
feat: Media search gains multi-select with batch move/copy (directory picker, persisted SAF grant, per-item error summary), a shared similarity-threshold preference (
set_thresholdtool + slider), and abatch_acttool accepting explicitsource_keysor an inline query. -
feat: Voice settings restructured — Doubao/Mimo voice catalogs moved into independent sub-pages with real NavHost transitions; form styling and tap haptics unified.
-
feat: Sub-agent presets moved to a dedicated detail page; the profile config dialog splits tier / reasoning effort / resolution / gpt-speed into sub-pages.
-
refactor: Composer tools moved into a two-level picker; the bottom-follow tail lift switched from per-frame rate limiting to eased pursuit, so new rows slide in from the rest line instead of jumping a full row.
-
feat: Model backup auto-discovers complete model directories under
noBackupFilesDir/<kind>/<id>/<revision>/(e.g. the action model) and hashes them at export time; half-downloaded directories and symlinks are skipped; restore refreshes only the kinds actually written. -
feat: Wide-screen layout uses a standard fixed-width side sheet (no overlay drawer), keeps the sidebar open when creating/selecting conversations, and centers secondary pages in a capped content column.
-
fix: Image rows now adapt to the full chat width with uniform sizes, falling back to horizontal scrolling only below the 64dp floor, decoupled from file rows.
-
fix(security): Cleartext traffic is now denied by default with only local loopback exempted (preserving OAuth callbacks and local Linux services) — breaking change: explicitly configured remote
http://model endpoints stop working, use https; the OAuth login page blocks mixed content. -
refactor(i18n): Enums and providers now carry only protocol values plus
@StringResreferences; all display text resolves at the UI boundary in the current language. 27 new keys land in Simplified/Traditional Chinese and English together. -
fix(browser): Browser settings became an in-page overlay (side-slide with quarter-screen parallax, RTL-mirrored) since the settings page and browser share one tab pool and cannot be separate routes.
v5.3.13
v5.3.13 — 2026-10-21
主要改进
-
修复点「打开浏览器」闪退:浏览器标签栏在只剩一个标签时会补一份互补占位,它的权重在稳态下是
1f - 1f == 0f;而 Compose 的Modifier.weight对小于等于 0 的权重直接抛异常(这个检查发生在组合期,不是测量期),于是点开浏览器的瞬间标签栏首帧组合就抛异常、应用当场闪退,浏览器页面一个像素都画不出来。现在标签本体与互补占位的权重都夹进 (0, 1],两者之和仍为 1f,行尾「+」不跳位;并新增单元测试钉死「权重恒为正」这个不变量。 -
浏览器初始化失败不再拖垮应用:WebView / 渲染器初始化失败改由统一兜底捕获并展示失败页,而不是让异常逃出去崩掉应用;失败时同步归还「用户接管」所有权,避免
browser_use工具一直卡在USER_CONTROL_ACTIVE、用户再也打不开浏览器。 -
撤掉 WebView 的强制硬件层:该绕法属于已经下线的 ModalBottomSheet 独立二级窗口时代(用于绕开部分 OEM GPU 的空白渲染);浏览器改为主窗口全屏页后前提已消失,回到 Android 默认渲染路径。
-
媒体语义索引自动更新:新增「启动后自动更新」与「定时自动更新」两个独立开关,可只开其一或同时开启。自动更新固定走低耗后台档,不跟随用户手选的索引档位;模型未下载 / 索引进行中 / 防抖窗口内都静默跳过。定时走 AlarmManager 周期闹钟(非精确闹钟),闹钟重启后由启动流程重排兜底,开机广播再补一次。
-
媒体检索页批量操作与阈值:检索页补多选(全选 / 反选 / 退出多选)、批量移出索引与批量删除文件,并新增相似度阈值滑杆。
-
缩短发送到模型首包的本地等待:发送前持久化只重写当前会话内容,并与 overhead 估算并行;Runtime 历史解码移出主线程,补上停止与解码的竞态保护;首轮复用已构建的提示词与工具,工具 token 数按轮缓存;MCP 过期缓存不再阻塞本轮请求,首次发现并行执行;skill 索引复用共享缓存,纯文本历史跳过媒体 hydration。
-
新增 MCP 自配置与本地技能安装工具:
eta_configure_mcp让模型自行配置 MCP 服务器,skills_install_local支持从手机目录安装技能。 -
界面细节修正:回收站主列表补上水平内边距,与设置页保持一致。
-
文档:README 展示名改为 EtaExpressive,补致谢、分支变更记录与链接,移除 QQ 群与 Telegram 引用。
Improvements
-
fix: Tapping "Open Browser" no longer crashes the app. The browser tab bar adds a complementary spacer when only one tab is left, and its weight evaluated to
1f - 1f == 0fin the steady state; Compose rejects any weight <= 0 with an exception raised during composition rather than measurement, so the tab bar's very first frame killed the app before the browser page drew a pixel. Both the chip weight and the spacer weight are now clamped into (0, 1] while still summing to 1f, so the trailing "+" keeps its position, and a unit test pins the "weight is always positive" invariant. -
fix: Browser initialization failures are now caught and rendered as a failure page instead of killing the app, and a failed acquisition hands browser ownership back so the
browser_usetool no longer stays wedged onUSER_CONTROL_ACTIVEand the browser can be reopened. -
refactor: The forced hardware layer on the WebView was dropped. That workaround belonged to the retired ModalBottomSheet secondary window, where it dodged blank rendering on some OEM GPUs; with the browser now a full-screen page in the main window its premise is gone, so the default Android rendering path is used.
-
feat: Media semantic indexing gains automatic updates, with independent "update on launch" and "scheduled update" switches that can be enabled separately or together. Automatic updates always run at the low-power background level, ignore the manually selected index mode, and are skipped when the embedding model is missing, an index run is in flight, or the debounce window has not elapsed. Scheduling uses a non-exact AlarmManager alarm; a launch-time reschedule covers alarms lost across reboots, and the boot broadcast adds one more safety net.
-
feat: The media search page gains multi-select (select all / deselect all / exit), bulk removal from the index and bulk file deletion, plus a similarity-threshold slider.
-
perf: Shorter local wait before the first token reaches the model: persistence before sending rewrites only the current conversation and runs in parallel with overhead estimation; Runtime history decoding moves off the main thread with stop/decode race protection; the first turn reuses the already-built prompt and tools, with tool token counts cached per turn; expired MCP caches no longer block the request and first-time discovery runs in parallel; skill indexes reuse a shared cache and plain-text history skips media hydration.
-
feat: New
eta_configure_mcplets the model configure MCP servers itself, andskills_install_localinstalls skills from directories on the phone. -
style: The trash bin list gained horizontal padding to match the settings pages.
-
docs: The README display name is now EtaExpressive, with acknowledgements, a fork changelog and refreshed links; QQ group and Telegram references were removed.
v5.3.12
v5.3.12 — 2026-10-21
主要改进
-
新增回收站:会话删除改为进入回收站,不再立即移除;回收站留存天数作为可改设置,随模型配置调整。
-
新增本地媒体语义索引与检索:为本地媒体建立语义索引,支持按内容语义检索,并完成回收站、语义检索与搜索的应用层接线。
-
备份扩展:备份内容新增模型文件与媒体索引。
-
接入离线语音(sherpa-onnx):新增离线语音运行时,支持选择语音模型与下载源。
-
新增模型自调用工具:提供
eta_manage_subagents与eta_manage_history,模型可自行调用以管理子代理与会话历史。 -
设置主页重组:设置主页按「工具能力 / 运行环境 / 系统接管」重新分组;系统接管页的分组不再整组隐藏。
-
统一到官方 Material 3 Expressive 组件:下拉菜单、子代理档案与协作面板、浏览器面板、设置与终端等页面,以及语音、TTS 与上下文压缩控件全面改用官方组件;浏览器面板转为独立全屏页,浏览器标签栏改用官方相连按钮组 Morph 胶囊,顶栏与终端弹窗改为路由页面;移除横移返回手势开关,补齐预测性返回转场。
-
统一选择面板与交互优化:新增
EtaPickerSheet统一选择面板,模型与助手选择器可直接进入配置;助手列表点行即选中、编辑收进行尾菜单,子代理组操作改为就地下拉菜单并移除底部操作面板,助手编辑字段改用官方OutlinedTextField。 -
聊天呈现优化:流式文字逐字渐变淡入并轻微上浮;跟底追逐按帧限速,回底与初始定位改为平滑收尾。
-
界面细节修正:空状态建议色块排成规整 2×2 网格;提供商连接配置表单去掉多余的分段底板;自定义请求头编辑器补充示例提示;对话框操作行迁至官方
confirmButton槽位。 -
多语言文案补全:工具轨迹摘要、语音 / TTS / 提供商表单、运行时通知、@ 会话占位与速度标签等文案改为字符串资源,并补齐回收站、语义检索与搜索相关文案。
-
问题修复:用户消息图片与文件附件圆角接入气泡接缝;输入区长按补触感反馈;登录页返回改走
OnBackPressedDispatcher;折叠 FAB 补无障碍标签;日期与音色时长文案改用组合期 locale 与定点小数;补齐skills_*工具图标;自身配置工具的密钥字段说明明确为 secret;轮次跳转长按只保留一次触感;手动压缩接口模式改读统一压缩接口配置。 -
会话列表筛选与搜索:会话列表支持「全部 / 未分类」筛选,搜索同时命中标题与消息正文。
Improvements
-
feat: Deleted conversations now go to a trash bin instead of being removed immediately, with an adjustable retention period tied to the model settings.
-
feat: Local media gains a semantic index with content-based retrieval, wired through the app layer together with trash and search.
-
feat: Backups now include model files and the media index.
-
feat: Offline speech runtime via sherpa-onnx, with selectable voice models and download sources.
-
feat: New self-callable tools
eta_manage_subagentsandeta_manage_historyfor managing sub-agents and conversation history. -
refactor: Settings home reorganized into Tool capabilities / Runtime / System takeover groups; groups on the System takeover page are no longer hidden as a whole.
-
refactor: Dropdowns, sub-agent profile and collaboration panels, the browser panel, settings and terminal pages, and the voice / TTS / context-compression controls all moved to official Material 3 Expressive components; the browser panel became a standalone full-screen page, the browser tab bar uses the official connected-button-group Morph pill, and the top bar and terminal dialogs became routed pages; the swipe-back toggle was removed and predictive-back transitions completed.
-
feat/refactor: New unified
EtaPickerSheet, with model and assistant pickers jumping straight into configuration; the assistant list now selects on row tap with edit moved to a trailing menu, sub-agent group actions moved to an inline dropdown with the bottom action panel removed, and assistant edit fields use the officialOutlinedTextField. -
feat: Streaming text fades in per character with a slight rise; follow-to-bottom is frame-rate limited, with smooth settling on return and initial positioning.
-
style: Empty-state suggestion tiles laid out as an even 2×2 grid; the provider connection form no longer sits on a redundant section surface; the custom-header editor gained example hints; dialog actions moved to the official
confirmButtonslot. -
i18n: Tool-trace summaries, voice / TTS / provider forms, runtime notifications, the @-conversation placeholder and speed labels moved to string resources; localization strings added for trash, semantic search and search.
-
fix: User-message image and file attachment corners now meet the bubble seam; the input area regained long-press haptics; login-page back now goes through
OnBackPressedDispatcher; the collapsed FAB has an accessibility label; date and voice-duration text use composition locale and fixed-point decimals; missingskills_*tool icons added; the self-config tool's key field is explicitly described as secret; turn-jump long-press keeps a single haptic; manual compression mode reads the unified compression-endpoint config. -
feat: The conversation list gains All / Uncategorized filters, and search now matches both titles and message content.