Skip to content

Releases: OpenMinis/OpenMinis

Android 0.8-preview

06 May 12:51

Choose a tag to compare

Android 0.8-preview Pre-release
Pre-release

Android 0.8-preview

New features / 新功能

  • android-a11y-cli now supports UI screenshots via the AccessibilityService. Agents can capture the current screen directly through the accessibility integration. (T350)
    android-a11y-cli 现在可通过无障碍服务截取当前屏幕,Agent 可直接调用截屏能力。

  • Model list rows now show input modality icons so you can see at a glance which models accept text / image / audio / video / PDF. (T347)
    模型列表的每一行新增输入模态图标,可一眼看出模型支持的文本 / 图片 / 音频 / 视频 / PDF 输入类型。

Fixes / 修复

  • Custom Provider endpoints over plain HTTP now work. Cleartext HTTP is allowed so private / LAN LLM servers like http://192.168.x.x:port no longer fail with the "CLEARTEXT communication not permitted" error. (T354)
    自定义 Provider 的 http:// 地址现在可正常使用。私有网络 / 局域网的 LLM 服务(如 http://192.168.x.x:端口)不再报 "CLEARTEXT communication not permitted" 错误。

  • Context-limit presets aligned to 32K / 64K / 128K / 200K / 400K / Unlimited and the slider can actually reach all six stops; previously the toggle value also got reset on change. (T349)
    上下文长度预设统一为 32K / 64K / 128K / 200K / 400K / 不限制,滑块现在能完整滑到全部 6 档;同时修复切换时开关值被重置的问题。

  • Selection dragging in chat now auto-scrolls when the handle is dragged past the visible area, so you can extend a selection across long messages. (T351)
    在聊天中拖动选择手柄到可见区域之外时,列表会自动滚动,方便跨多条长消息选择内容。

Polish / 视觉打磨

  • Settings text fields now align with section labels so the form looks tidy across the app. (T352, T353)
    设置页面的输入框现在与分组标题对齐,整体表单更整齐。

Full changelog: 0.1-preview...0.8-preview

Android 0.7-preview

04 May 14:51

Choose a tag to compare

Android 0.7-preview Pre-release
Pre-release

0.7-preview rolls up the last 24 hours of Android-side work since 0.6. Highlights: a long-context streaming-chunk OOM fix that lifts the Pixel-4a heap ceiling, a launch-mode regression where "New Chat on launch" silently fell back to the home screen, a chat-list scroll regression where new tool cards landed outside the viewport, plus polish around groups / session defaults / markdown tables.

0.7-preview 汇总自 0.6 之后 24 小时内的 Android 端改动。重点:长上下文流式 chunk OOM(Pixel 4a 堆吃紧)、启动选项「新建会话」冷启动被静默丢弃、流式新到的工具卡片落在可视区外,以及围绕分组 / 会话默认值 / markdown 表格的一批打磨。

Highlights / 重点

  • Long-context OOM fix (T307) — replaced O(n²) streaming-chunk String accumulation with StringBuilder and turned on largeHeap. DeepSeek V4 long multilingual + emoji turns no longer crash the app on memory-tight devices.

    • 长上下文 OOM 修复(T307)—— 流式 chunk 累加从 O(n²) 的 String 拼接改成 StringBuilder,并开启 largeHeap。DeepSeek V4 多语言 + emoji 长 turn 不再在内存吃紧设备上闪退。
  • Launch-mode "New Chat on launch" actually works (T314) — cold-start launch-session resolver was racing the NavHost's start-destination lifecycle and getting silently dropped. All 4 modes (Auto / Last Session / New Chat / Home) now dispatch correctly on cold start.

    • 「启动时新建会话」真正生效(T314)—— 冷启动时启动选项解析跟 NavHost 起始目的地的生命周期赛跑,被静默丢弃。现在 4 种模式(自动 / 上次会话 / 新对话 / 主页)冷启动都能正确派发。
  • New tool cards land in viewport (T303 / T304) — reverse-layout chat list now anchors to the bottom so a streaming tool card or typing indicator that arrives mid-turn renders inside the visible area instead of behind the floating Computer overlay + composer.

    • 新工具卡片自动进入可视区域(T303 / T304)—— reverse-layout 聊天列表锚定在底部,流式中新到的工具卡片 / typing 指示器现在落在可视区域内,不再被底部预览卡 + 输入框挡住。

New features / 新功能

  • Session Defaults on group detail page (T312) — thinking level + context-limit overrides per model group, matching iOS.

    • 模型组详情页新增「会话默认值」(T312)—— 每个模型组单独的思考等级 + 上下文上限覆盖,与 iOS 对齐。
  • Provider groups screen → iOS-style section cards (T313) — visually consistent with the rest of Settings.

    • 「提供商分组」页面改为 iOS 风格 section 卡片样式(T313)—— 与设置中其他页面视觉统一。
  • minis-config session/chat keys aligned with iOS (T311) — agent-driven config changes now use the same key namespace as iOS so cross-platform sessions stay in sync.

    • minis-config 会话 / 聊天相关 key 与 iOS 对齐(T311)—— 智能体写配置使用与 iOS 一致的 key 命名空间,跨平台会话保持一致。

Fixes / 修复

  • Streaming-chunk OOM (T307) — see Highlights above.

    • 流式 chunk OOM(T307)—— 详见上方重点。
  • Cold-start "New Chat on launch" silently failing (T314) — see Highlights above.

    • 冷启动「新建会话」被静默丢弃(T314)—— 详见上方重点。
  • Reverse-layout chat list anchored to bottom (T303) — new tool cards now land in viewport, not behind the composer.

    • reverse-layout 聊天列表锚定底部(T303)—— 新工具卡片不再渲染到 composer 后面。
  • Markdown table leading empty header cell preserved (T308) — first-column blank header now renders correctly.

    • Markdown 表格首列空表头格保留(T308)—— 首列空表头现在正确渲染。
  • Compose chat markdown render crashes (T307) — defensive guards around chat markdown rendering paths to prevent Compose recomposition crashes seen on long mixed-content turns.

    • Compose 聊天 markdown 渲染崩溃修复(T307)—— 长 mixed-content turn 的 Compose 重组路径加防御性保护。
  • Reasoning round-trip preserves empty reasoning_content — drops the fabricated placeholders that DeepSeek V4 was learning in-context and echoing back as its own reasoning. Empty string satisfies the field-presence check with no learnable pattern.

    • reasoning 字段往返保留空 reasoning_content —— 去掉之前的合成占位符(DeepSeek V4 把它当成自身 reasoning 的一部分回吐)。空字符串既满足字段存在性又不会被学习。
  • Shell clear-button cursor position (T310) — clearing the shell now resets the cursor properly so the next prompt doesn't render mid-line.

    • Shell 清空按钮后正确重置光标位置(T310)—— 下一条提示符不再渲染在行中间。
  • Section card colors + inner vertical padding (T313 follow-up) — corrected color tokens and padding on the new groups screen.

    • 分组卡片颜色和内部纵向 padding 修正(T313 follow-up)。
  • Env-var redaction skips values ≤ 4 chars — preserves short values that were getting wholly masked into uselessness.

    • 环境变量遮蔽逻辑跳过 ≤ 4 字符的值 —— 避免短值被完全打码到无意义。
  • Dark-mode launcher icon uses full-size foreground (T316) — fixes shrunken icon appearance on dark themes.

    • 深色模式启动图标使用完整尺寸 foreground(T316)—— 修复深色主题下图标缩水。

Full changelog: 0.6-preview...0.7-preview

Android 0.6-preview

03 May 09:24

Choose a tag to compare

Android 0.6-preview Pre-release
Pre-release

0.6-preview ships the polish + reliability pass since 0.5. This refresh
leads with two big wins: an opt-in Environment Variable Privacy Mode
that masks secrets before they reach the model, and a thorough sweep of
unexpected-stream-cut bugs — fallback-model persistence, OOM crashes
on long agent loops, completion-notification cleanup, and runaway
tool-loop reporting.

Highlights / 重点

  • Environment Variable Privacy Mode — when enabled, any env-var
    value that appears in shell_execute output is masked (e.g.
    sk-1********ajhks) before reaching the model; values shorter than
    8 characters become all *. The chat surface still shows raw output
    to the user — only the wire payload to the LLM is redacted.
    — 环境变量「隐私模式」:开启后,shell-execute 输出中检测到的环境
    变量值会在送达模型前打码(如 sk-1********ajhks);少于 8 字符的
    值全部替换为 *。聊天中用户可见的输出保持原样,只对模型隐藏。

  • Unexpected stream-cut fixes — long agent loops no longer crash
    the app via 31 MB JSON serialization (T302); fallback model now
    persists to the session and survives app restart, so reopening shows
    the correct model with no X→Y flash (T306); completion notifications
    auto-clear when the app returns to foreground; runaway tool loops
    surface as ❌ error variants instead of silently reporting success.
    — 「意外断流」类问题修复:长 agent loop 中 31 MB JSON 序列化导致
    的 OOM 闪退已根除(T302);fallback 模型现在持久化到会话,重启 app
    后直接显示 fallback 后的模型,不再闪动从 X 切到 Y(T306);完成通
    知在 app 切回前台时自动清除;agent 工具循环出错时通知正确显示 ❌
    变体而不是误报成功。

New features / 新功能

  • Browser viewport control via set_viewport (and get_cookies,
    scroll_and_collect, wait_for_dom_stable) now exposed in the
    browser_use tool schema — the agent can resize the viewport before
    screenshotting a 1920×1080 composition, retrieve cookies for the
    current site, and accumulate items across infinite-scroll pages
    (T305).
    — browser_use 工具新增 set_viewport(以及 get_cookies
    scroll_and_collectwait_for_dom_stable)。智能体现在可以为截
    图调整浏览器视口大小、获取当前站点 cookies、跨无限滚动页面累积内
    容项(T305)。

  • Browser tooling and previews improvements — wider integration
    surface and better in-app preview rendering.
    — 浏览器工具集和预览体验改进 —— 更广的工具集成、更好的内嵌预览
    渲染。

  • Local crash logging via ACRA + NDK signal handler (T283) — JVM
    exceptions and native signals now persist into Settings → Logs for
    later diagnosis; share-as-file shortcut included.
    — 本地崩溃日志(ACRA 捕获 JVM 异常 + NDK 捕获原生信号),写入
    「设置 → 日志」便于事后排查,支持以文件形式分享。

  • Permissions screen localized (T296) — section headers and tool
    row titles in Settings → Permissions now follow the user's locale.
    — 「设置 → 权限」分节标题与工具行标题完成多语言本地化。

  • Config Changes / Logs screen localized (T288) — segmented tabs,
    status badges, actor labels, and relative-time strings now follow
    the user's locale (en, zh, zh-rTW, ja, ko, fr, de).
    — 「设置 → 日志 / 配置变更」标签、状态徽章、来源标签、时间标签
    全部完成 7 语种本地化。

  • Terminal hostname set to minis (T294) — shell prompt now
    matches iOS for cross-platform parity.
    — 终端主机名设为 minis,与 iOS 提示符保持一致。

Fixes / 修复

  • Persist fallback model to session (T306) — switching to a
    fallback model used to be lost on cold restart, causing the top
    capsule to flash from the original model to the fallback target.
    Now fixed via a load-time race fix in ChatViewModel.init.
    — Fallback 模型持久化到会话(T306)—— 修复了冷启动 + 重新进入会话
    时顶部模型胶囊先显示旧模型再闪动切到 fallback 目标的问题。

  • Avoid OOM in long agent loops (T302) — debug-only
    LLMRequestLog no longer retains multi-MB request bodies in release
    builds, and each request body is serialized exactly once instead of
    2-3 times.
    — 长 agent loop OOM 修复(T302)—— release 包完全跳过 debug 日志
    ring buffer,每次请求只序列化一次 body;峰值堆压力从 ~90 MB 降到
    ~30 MB。

  • Scroll new tool cards into view (T304) — when the agent appends
    a new tool card mid-loop, the chat list auto-scrolls so the card
    sits above the floating Computer overlay + composer.
    — agent loop 中新工具卡片自动滚到可见区域,不再被底部预览/输入
    框遮挡(T304)。

  • Open new conversation on resume (T293, #10) — honors the
    "Open New Chat on Resume" setting in Appearance.
    — 启用「恢复时新建对话」设置后,应用从后台恢复时按设置打开新会话。

  • Hide Deep Thinking block when thinking is OFF (T300) — no
    more empty thinking row when the user has the toggle off.
    — 用户关闭「深度思考」开关时不再显示 Deep Thinking 块(T300)。

  • Inline code background range fix for CJK + ASCII (T299)
    background spans the full code span for mixed CJK + ASCII text.
    — 中英混合文本的行内代码背景现在覆盖完整范围(T299)。

  • Clear completed-task notifications on foreground — and wire
    markStreamError so completion notifications correctly show the ❌
    error variant when the agent loop fails (T298).
    — 完成通知在 app 切回前台时自动清除;接通 markStreamError
    agent 出错时通知正确显示 ❌ 变体(T298)。

  • Open alarms in system Clock — the android-alarm tool and the
    alarm chat-card now open the system Clock app directly instead of
    the redundant in-app alarm list.
    — 闹钟改为直接打开系统时钟,移除冗余的 app 内闹钟列表 ——
    android-alarm 与闹钟卡片现在直达系统时钟。

  • Image-only messages can be sent (T286) — pressing Enter on a
    soft keyboard with only an image attached (no caption) now sends.
    — 仅含图片、无文字内容时,软键盘 Enter 能正常发送。

  • File preview navigation no longer blocks (T285) — large
    markdown / image previews load asynchronously.
    — 大图 / 大 Markdown 文件预览改为异步加载,进入预览页时动画不再
    卡顿。

  • Lazy-load LogManagementScreen — capped at 100 daily + 100 crash
    log entries to keep navigation snappy when the log dir is large.
    — 日志页改为懒加载,封顶 100 条日常 + 100 条崩溃,进入更迅速。

  • Share log/crash files as attachments — files are now attached
    as text/plain instead of pasted into the share text body.
    — 日志 / 崩溃文件按附件分享,不再把全文粘贴进分享文本。

  • Re-scroll 100ms after send (T281) — second scroll-to-bottom pass
    catches the "Minis is thinking" indicator that mounts asynchronously.
    — 发送后 100ms 二次滚动,确保异步挂载的「正在思考」指示器进入
    可视区。

  • Scroll to thinking indicator on resume (T282) — Resume button
    now snaps back to the new stream's thinking row.
    — 点击「继续」恢复时自动滚到新一轮的思考指示器。

  • Terminal toolbar moves above IME (T290) — software keyboard no
    longer occludes the terminal action buttons.
    — 软键盘弹起时终端工具栏自动上移,不再被遮挡。

  • Chat menu dividers more visible (T289) — bumped contrast on the
    long-press menu separators.
    — 提高长按菜单分隔线对比度,分组分隔更清晰。

  • User message long-press menu width −30% (T280) — menu reads
    compactly against the bubble.
    — 用户消息长按菜单宽度收紧,与气泡视觉比例更协调。

  • Reset All also resets minis-config switch (T291) — Settings →
    Permissions → "Reset All" now flips the minis-config master switch
    back to its default.
    — 「全部重置」现在也会把 minis-config 主开关重置为默认值。

  • Config Changes tab: clear-all removed (T292) — audit log is now
    permanent at the UI layer.
    — 「配置变更」标签页移除「清除全部」按钮,审计记录改为只读永久。

  • NativeOffloadServer retries on stale abstract socket — bind
    succeeds after process restart races instead of silently failing.
    NativeOffloadServer 在抽象套接字残留时重试绑定,避免应用进程
    重启时偶发的启动失败。

  • Skip app init in :acra reporter process — breaks the restart
    loop where the ACRA reporter wakes, re-runs MinisApp.onCreate,
    and itself crashes.
    — ACRA 报告进程跳过应用初始化,避免崩溃报告进程自循环。

  • Fix minis-config confirmation error reporting — write failures
    now surface the real error.
    — 修复 minis-config 确认对话框的错误上报。

Polish / 视觉打磨

  • Tonal background on model-group expand chevrons (T295) — chevrons
    in the Choose Model sheet bumped from surfaceContainerHigh to
    secondaryContainer (Teal #CCE8E4) so they read as proper tonal
    buttons.
    — 模型选择面板分组展开按钮加圆形 tonal 底色(Teal #CCE8E4),视觉
    更明确。

  • Slash command palette spacing (T301) — added breathing room
    between the palette and the composer so the panel doesn't sit flush
    against the input.
    — 斜线命令面板与输入框之间增加间距,不再贴在一起。

  • Aligned grouped theme surfaces in Settings.
    — 设置中分组主题表面对齐微调。


Full changelog: 0.5-preview...0.6-preview

Android 0.5-preview

02 May 16:42

Choose a tag to compare

Android 0.5-preview Pre-release
Pre-release

New Features / 新功能

  • minis-config: agent-facing settings management — AI can now read, audit, and revert app settings directly via the minis-config command
    — AI 现在可通过 minis-config 命令直接读取、审计并回滚应用设置

  • Alarm List Screen + minis://views/alarm route — dedicated alarm management view with deep-link access
    — 新增闹钟管理页面,支持 minis://views/alarm 深链接

  • Dual-write alarm to system Clock — alarms now appear in the native Android Clock app
    — 闹钟同步写入系统时钟应用

  • Storage → Shared Folders screen — manage external folder mounts from the Settings UI
    — 新增"共享文件夹"管理页,可在设置中管理外部挂载目录

  • Chrome Custom Tab for OAuth — Google login and OAuth flows now open in Chrome Custom Tab
    — Google 登录和 OAuth 流程改用 Chrome Custom Tab 打开

  • Mount list cards + "Browse Files" — storage settings now show mount cards with built-in file browser shortcut
    — 存储设置中新增挂载卡片和文件浏览器快捷入口

  • Section design tokens + reusable primitives — consistent section card layout system across all settings screens
    — 引入统一 Section 设计规范,全设置页风格一致

  • Small button variant — compact button style for in-card actions
    — 新增小号按钮样式,用于卡片内操作

  • Primary buttons height +50% — 40dp → 60dp for better touch ergonomics (later tuned back to 48dp min-height)
    — 主按钮高度提升,触控更舒适

  • Slash command panel + Choose Model sheet localized — both UI surfaces now fully internationalized
    — 斜线命令面板和模型选择面板已完成本地化

Fixes / 修复

  • StateFlow emits after in-place mutationProviderConfig.saveConfig now bumps revision so downstream collectors always receive updates
    — 修复 ProviderConfig 原地修改后 StateFlow 不触发更新的问题

  • Image URL sanitized for non-vision modelsimage_url blocks replaced with text placeholder to avoid API errors
    — 非视觉模型下 image_url 内容自动替换为文本占位符,避免 API 报错

  • Inline-code background for CJK+ASCII bidi text — painted via TextLayoutResult.getPathForRange for correct mixed-script rendering
    — 修复中英文混排时行内代码背景绘制错位的问题

  • Full output preserved for non-shell tool resultsfile_read banner and other results no longer truncated
    — 修复非 shell 工具结果被截断、文件读取标题不显示的问题

  • Tool detail sheet stays open on LazyColumn disposal — sheet hoisted above the list to prevent premature closure
    — 修复工具详情面板因列表回收而意外关闭的问题

  • Retry preserves completed tool calls — retrying a message no longer drops already-completed tool results
    — 重试消息时不再丢失已完成的工具调用结果

  • DeepSeek V4 placeholder in-context-learn loop — suppressed runaway loop on placeholder responses
    — 修复 DeepSeek V4 占位响应导致的上下文学习死循环

  • Responses-API function_calls drained on stream end — in-flight calls flushed when stream closes
    — 修复 Responses API 流结束时未处理的 function_call 丢失问题

  • Scroll-follow forced on user message appenduserScrolledAway flag reset on every new user message
    — 修复发送消息后自动滚动跟随失效的问题

  • file_edit preview card fills height above footer — card no longer cut off at bottom
    — 修复 file_edit 预览卡片被底部工具栏遮挡的问题

  • Inline Retry button removed from cancelled tool rows — retry only shown for failed, not cancelled calls
    — 移除已取消工具调用行中的行内重试按钮

  • FilePreviewScreen content background painted — prevents immersive gray gap behind content
    — 修复文件预览页内容区出现灰色间隙的问题

  • User message long-press menu — right-aligns to bubble; max width clamped to prevent overflow
    — 修复长按菜单未对齐气泡右侧 + 窄屏溢出问题

  • SET_ALARM permission added — required for dual-write to reach the system Clock app
    — 补充 SET_ALARM 权限,确保闹钟能写入系统时钟

  • MANAGE_EXTERNAL_STORAGE permission — added to manifest so mounting external folders works
    — 补充外部存储权限声明,确保外部文件夹挂载生效

  • Env-var note field persisted — note text now saved through EnvVarRepository
    — 修复环境变量备注字段未持久化的问题

  • Per-session thinking-mode override persisted — thinking mode toggle survives app restart
    — 修复每会话思考模式覆盖设置在重启后丢失的问题

  • Tool CPU% reads /proc/stat system-wide ticks — accurate CPU percentage instead of process-only
    — 工具 CPU 占用率改为读取全局 /proc/stat,数值更准确

  • Tool thumbnail top-gap matched to row spacing — visual alignment corrected
    — 工具缩略图顶部间距与工具行对齐

  • PRoot link2symlink: uv forced to symlink mode — avoids sentinel file conflicts in fakefs
    — 强制 uv 使用符号链接模式,避免 PRoot 哨兵文件冲突

  • SectionTextField alignment + Choose Model / slash-command panel polish — multiple visual alignment fixes across settings and panels
    — 多处设置页和面板的视觉对齐修复

Polish / 视觉打磨

  • Tiered streaming UI throttle + scroll-follow sampling — smoother display under high-frequency token updates
    — 流式输出 UI 节流分级 + 滚动跟随采样,高频 token 下更流畅

  • Section card text inputs unified — redundant border removed from card inputs across settings
    — 设置页卡片输入框去除多余边框,样式统一


Full changelog: 0.4-preview...0.5-preview

Android 0.4-preview

30 Apr 17:03

Choose a tag to compare

Android 0.4-preview Pre-release
Pre-release

New features / 新功能

  • Model detail page now lists capabilities and input/output modality (iOS parity).
  • 模型详情页新增能力与输入/输出模态信息(与 iOS 对齐)。

Fixes / 修复

  • KaTeX rendering completely overhauled: math formulas now match body text size, render sharply at device resolution, and no longer clip wide formulas, single-letter formulas, or formulas inside list items and table cells.
  • KaTeX 渲染整体重做:公式字号与正文一致、按设备分辨率清晰渲染,宽公式、单字母公式、列表项与表格单元格内的公式都不再被裁切或错位。
  • Fixed table cells displaying the wrong formula (e.g. integral cell showing the sum bitmap) caused by a WebView snapshot timing race.
  • 修复表格单元格因 WebView 截图时序竞争导致的公式错位(如积分单元格显示 ∑ 图像)。
  • Inline math no longer overlaps the next paragraph; height now clamped to line height.
  • 行内公式不再覆盖下一段,已按行高夹紧高度。
  • Original image bytes are now stored and uploaded; only the inference payload sent to the LLM gets resized (iOS parity).
  • 现在保存与上传图片的原始字节,仅在发给 LLM 的推理 payload 处做缩放(与 iOS 对齐)。
  • OpenAI / OpenRouter modality names now round-trip correctly through the model detail toggles instead of resetting to defaults.
  • OpenAI / OpenRouter 模型的输入/输出模态名称现在能在模型详情切换中正确往返,不再重置为默认值。

Internal / 内部

  • Unified image max long edge at 2000 px across attachments, browser screenshots, read_image, and Anthropic fallback (iOS + Android).
  • 统一附件、浏览器截图、read_image、Anthropic 回退路径的图片最大长边为 2000 px(iOS + Android)。

Full changelog: 0.3-preview...0.4-preview

Android 0.3-preview

29 Apr 14:05

Choose a tag to compare

Android 0.3-preview Pre-release
Pre-release

Android 0.3-preview

31 commits since 0.2-preview. Highlights: new minis-sessions shell tool that lets the agent enumerate and grep its own history, edit-message support on user bubbles, system-wide localization for every secondary screen (chat sheets, settings detail screens, sandbox/file/browser/terminal/onboarding), task-notifications toggle with completion alerts, Agent Loop reshuffled into a Model Groups section, expanded minis://settings/<path> deep links so the agent can drop tappable links into chat for any settings page, Anthropic-compatible custom base URLs now work, ToolLiveSheet long-press selects text without crashing, plus several streaming + sandbox correctness fixes including auto-resuming queued prompts after a stop and the file-preview long-press crash.

31 次提交(自 0.2-preview 起)。亮点:新增 minis-sessions 命令让 Agent 自行检索历史会话、用户消息长按编辑、二级页面(聊天弹窗、设置详情、Sandbox/文件/浏览器/终端/Onboarding)全面本地化、任务通知开关 + 完成提醒、Agent 循环并入模型组管理、扩展 minis://settings/<path> 深链让 Agent 能在聊天里贴出任意设置页面的可点击链接、Anthropic 兼容接口的自定义 baseURL 终于可用、工具实况面板长按可选词不再闪退,以及多项流式 / Sandbox 正确性修复(包括停止后自动续跑排队消息、文件预览长按闪退)。

New features / 新功能

  • minis-sessions shell command lets the agent enumerate, search, and read its own session history from inside the sandbox: minis-sessions list (with date / keyword filters), minis-sessions search <pattern>, and minis-sessions messages <session-id>. iOS parity offload tool (T188).
    • minis-sessions 命令行工具:Agent 可在沙盒内枚举、搜索并读取自身会话历史 —— list(支持日期 / 关键字过滤)、search <pattern>messages <session-id>,与 iOS 同名 offload tool 对齐(T188)。
  • minis://settings/<path> deep links now route 14 settings screens (providers / providers/<id> / model-groups / model-groups/<id> / usage / skills / memory / storage / logs / appearance / background / about / permissions / environments / rootfs) — the agent can drop a Markdown link like [Open Model Groups](minis://settings/model-groups) and tapping it lands the user on the right page. Unknown paths fall back to Settings home so an LLM-generated link never strands the user (T183, iOS parity).
    • minis://settings/<path> 深链 现在覆盖 14 个设置页面(providers / providers/<id> / model-groups / model-groups/<id> / usage / skills / memory / storage / logs / appearance / background / about / permissions / environments / rootfs),Agent 可以在聊天中输出 [打开模型组](minis://settings/model-groups) 这样的 Markdown 链接,用户点击后直达对应页面;未知路径回落到设置主页,确保 LLM 生成的链接不会让用户卡住(T183,对齐 iOS)。
  • Edit user messages from long-press menu with truncate-before-resend semantics — pulls the original text into the composer (with attachment metadata stripped), and submitting the edit removes the original turn plus every later LLM reply / tool result before persisting the new text as a fresh turn. iOS parity (T187).
    • 长按用户消息支持「编辑」:编辑后旧消息及其后的所有 LLM 推理 / 工具结果会被删除并以新内容重新发送,与 iOS 行为一致(T187)。
  • Task Notifications: foreground service status pill in Settings + N-tasks-running badge + completion notifications when an agent loop ends, mirroring iOS Live Activity (T180-bg-notif).
    • 任务通知:前台服务状态、运行中任务数徽标,以及任务完成时的通知(T180-bg-notif,对齐 iOS Live Activity)。
  • AgentLoopModelsScreen: picker for which models / model groups are exposed to the minis-model-use tool (T171). Cascading cleanup when an entry or group is removed.
    • Agent 循环模型:选择哪些模型 / 模型组对 minis-model-use 工具开放,删除时级联清理(T171)。
  • LogManagement: top-bar share removed; log detail screen now uses lazy line-index loading so 100k+ line logs scroll smoothly (T176).
    • 日志管理:移除顶部分享按钮;日志详情页改用懒加载行索引,10 万 + 行也能流畅滚动(T176)。
  • System-wide i18n across 7 locales (en / zh-Hans / zh-Hant / ja / ko / fr / de):
    • Chat overflow menu, long-press menu (Copy / Retry / Edit), and attach menu (Take Photo / Choose Photos / Add File) now localize. Clear Chat confirm dialog body + button localized too (T184-chatmenu-i18n, T187).
    • Settings detail screens: Appearance, Background, Env Vars, Logs, Memory, Offload, Skills, Storage, Usage, Mirrors, Rootfs (T172-B).
    • Provider / Model Group / Add Provider / Settings top — A-domain (T172-A).
    • Chat sheets: Move To, Offload Permission, Session Memory / Skills, Speech Language, Standard Sheet, Token Usage (T172 phase 1).
    • Components / Onboarding / Web Preview (T172 phase 2).
    • Sandbox (FileBrowser / FilePreview), Session List, Browser sheets, Terminal (T172 phase 3).
    • 聊天溢出菜单 / 长按菜单 / 附件菜单 全部支持 7 语言;清空对话弹窗内文也已翻译(T184-chatmenu-i18n、T187)。
    • 设置二级页面 全部本地化(T172-B:外观、后台、环境变量、日志、记忆、卸载、技能、存储、用量、镜像、Rootfs)。
    • Provider / 模型组 / Settings 顶层 本地化(T172-A)。
    • 聊天面板 本地化(T172 第一阶段:会话记忆/技能、Token 用量、移动到、卸载授权、语音语言、Standard Sheet)。
    • 组件 / Onboarding / Web 预览 本地化(T172 第二阶段)。
    • Sandbox(文件浏览器 / 文件预览)/ 会话列表 / 浏览器面板 / 终端 本地化(T172 第三阶段)。

Polish / 视觉打磨

  • Model Groups & Agent Loop picker UI unified into a single Add Models sheet with reorder support for both entries and groups (T185 + T186, iOS parity).
    • 模型组与 Agent 循环 共用同一套「添加模型」面板,并支持条目/组重新排序(T185 + T186,对齐 iOS)。
  • Agent Loop Models moved from a top-level Settings row into a section inside Model Groups; picker LazyColumn fixed for 369-model lag (T182, redo of T171).
    • Agent 循环可用模型 由 Settings 顶层下沉到「模型组」内部;选择列表 LazyColumn 修复 369 模型卡顿(T182,T171 重做)。
  • FilePreviewScreen uses StreamingMarkdownText and the chat background color so the preview blends into the same immersive surface as the chat view.
    • FilePreviewScreen 改用 StreamingMarkdownText 与 chat 背景色,预览页与聊天页背景统一。

Fixes / 修复

  • Anthropic-compatible custom base URLs now work: pointing an Anthropic provider at a compat endpoint (DeepSeek-anthropic, Bailian, etc.) used to fail because the URL composition double-appended /v1, producing requests to …/v1/v1/messages and a 404. Messages now strip a trailing /v1 from the configured base before adding the canonical /v1/messages, matching iOS stripV1Suffix. Standard https://api.anthropic.com is unaffected. The RPC metadata for provider.types was also lying — it claimed Anthropic didn't support a custom base URL even though the AddProvider / ProviderDetail screens have always shown the field. Both lined up with iOS now (T192, iOS parity).
    • Anthropic 兼容接口自定义 baseURL 修复:之前给 Anthropic provider 配 DeepSeek-anthropic / 百炼 等兼容端点会 404,原因是 URL 拼装重复加了一次 /v1,最终请求 …/v1/v1/messages。现在 Messages 接口会先 strip 掉 base 末尾的 /v1 再 append 标准的 /v1/messages,与 iOS stripV1Suffix 行为一致;标准 https://api.anthropic.com 不受影响。同时修复 RPC provider.types 错误地声称 Anthropic 不支持 customBaseURL(实际 AddProvider / ProviderDetail 页面一直允许填)(T192,对齐 iOS)。
  • ToolLiveSheet long-press now selects text without crashing: when the agent is writing a file, applying an edit diff, or running a shell command, you can long-press the live tile to bring up the Material selection toolbar (Copy / Select All) — same as the rest of chat. Previously this either crashed the app (IllegalArgumentException: layouts are not part of the same hierarchy from a cross-subtree Compose selection-coordinator walk) or, after T191, was disabled outright to dodge the crash. Each live tile body (EditorCard / file_edit diff ribbon / shell output) now sits inside its own nested SelectionContainer, which gives Compose a subtree-local SelectionRegistrar so the toolbar's coordinate walk stays within the tile and never spans the chat list and the bottom sheet at once. iOS-style .textSelection(.enabled) parity (T191 + T193).
    • 工具实况面板长按可选词且不再闪退:Agent 写文件 / 编辑文件 / 执行 Shell 命令时,长按实况内容会弹出 Material 选词工具条(复制 / 全选),与聊天其余区域一致。此前要么直接闪退(IllegalArgumentException: layouts are not part of the same hierarchy,跨 Compose 子树选词协调器越界),T191 阶段为避免闪退临时禁用了选词。现在三处实况内容(EditorCard / file_edit diff / Shell 输出)各自嵌套独立的 SelectionContainer,Compose 在子树内部各管各的 SelectionRegistrar,选词工具不会再跨越聊天列表与底部 Sheet 两个层级,对齐 iOS .textSelection(.enabled)(T191 + T193)。
  • File preview no longer crashes on long-press for .py / .json files: text and JSON previews used to stack horizontalScroll().verticalScroll() directly on the Text, which let the selection toolbar's bounding-box query come back with NaN / Infinity and crash the app the moment you long-pressed inside the preview. The two scrolls are now split into nested Box layers (outer vertical, inner horizontal) with softWrap=false on the Text, so selection / copy still work and the page can scroll both ways without producing an unbounded layout (T190).
    • 文件预览长按 .py / .json 不再闪退:以往 Text 上同时挂了 horizontalScroll()verticalScroll(),长按时选词工具拉到 NaN / Infinity 边界直接崩溃。现在拆成嵌套 Box(外层纵向、内层横向),并对 Text 设 softWrap=false,长按选词、复制、横纵滚动全部保留(T190)。
  • Queued prompts auto-drain after Stop: if you typed a follow-up while the model was streaming and then tapped Stop, the queued bubble used to stay dashed forever — you had to long-press → Retry to actually send it. Now Stop checks the queue and auto-resumes after a 200 ms grace, and the bubble flips from dashed to solid as soon as the new turn starts. Manual Retry on a queued bubble also clears the dashed state instead of leaving it half-stuck (T189, iOS parity).
    • 停止后自动续跑排队消息:流式回复中如果你又发了一条消息,然后点了 Stop,那条排队消息以前会一直显示虚线、必须长按 → 重试才会真正发送。现在 Stop 会检查队列,200 毫秒缓冲后自动续跑,气泡也会立即由虚线变实线;即便你手动长按重试,那条消息也会立即转为已发送状态(T189,对齐 iOS)。
  • ReadImageTool routes through resolveSessionHostPath to prevent cross-session file leak (T178).
    • ReadImageTool 改走 resolveSessionHostPath,杜绝跨会话文件泄漏(T178)。
  • Custom OpenAI baseURL normalizes trailing slash and dedupes /v1 so endpoints stop ending up as …//v1/v1/chat/completions (T174).
    • 自定义 OpenAI baseURL 自动处理结尾斜杠和重复 /v1,避免 …//v1/v1/chat/completions 这类错误地址(T174)。
  • Shell sheet layout fixes: CPU / MEM HUD now anchors to the black canvas bottom (T173); fixed-height was replaced with minHeight + verticalScroll so the sheet handles short and long output equally well (T177); blank gap between card and footer removed (T179, T177 cleanup).
    • Shell 面板 多项排版修复:CPU/MEM HUD 贴底(T173)、改用 minHeight + verticalScroll 适应不同长度输出(T17...
Read more

Android 0.2-preview

29 Apr 01:40

Choose a tag to compare

Android 0.2-preview Pre-release
Pre-release

Android 0.2-preview

Second preview build. Brings Android closer to iOS feature parity, with new features, a wave of bug fixes, and visual polish across the chat surface.

第二个预览版本。Android 与 iOS 的功能对齐进一步收敛,带来新功能、一批 bug 修复,以及聊天界面的视觉打磨。

New features / 新功能

  • Full i18n localization across 6 languages (English, 简体中文, 日本語, 한국어, Français, Deutsch); translations sourced from the iOS xcstrings (T127)
    全应用本地化覆盖 6 种语言(English、简体中文、日本語、한국어、Français、Deutsch),翻译复用 iOS xcstrings (T127)
  • Attachment picker now supports multi-select up to 50 photos / videos / files at once (T129)
    附件选择器支持一次最多选 50 张图片 / 视频 / 文件 (T129)
  • Tap a composer attachment chip to preview it — images open in the in-app fullscreen viewer; videos and other files hand off to the system viewer (iOS parity)
    点击输入框中的附件 chip 即可预览 —— 图片走应用内全屏查看器,视频/文件交由系统查看器打开(iOS 一致)
  • System "share to Minis" wires into the active or new session's composer with attachment + Move-to-session affordance (T185)
    系统"分享到 Minis"流程接入当前/新会话的输入框,带附件预览和 Move-to-session 入口 (T185)
  • Send button now enables when only attachments are present (no message text required) (T180)
    仅有附件、无文本时也允许发送 (T180)
  • User image attachments persist across app/session restart (T128)
    用户图片附件在 app / 会话重启后仍可恢复 (T128)
  • Image attachments now actually reach the LLM's multimodal payload (T132)
    图片附件现在能真正送达 LLM 的多模态 payload (T132)
  • GPT-5.x and o-series models default to supportsReasoning=true so the Thinking pill enables, with effort honoured end-to-end (T119, T132)
    GPT-5.x 与 o 系列模型默认支持 reasoning,输入框上的 Thinking 胶囊可正常启用并贯通 effort 设置 (T119, T132)

Fixes / 修复

  • Blank-white-screen no longer happens after a rapid back-then-settings tap; navigation drops calls made during the previous destination's pop transition
    快速"返回 + 设置"双击后不再出现白屏 —— 上一屏 pop 过渡期间发出的导航调用会被丢弃
  • Shared images that the share sheet stages survive the staging-dir cleanup, so the LLM actually sees the picture instead of asking "what is this?" (T185)
    分享进来的图片不再因 share-extension 目录清理而失效 —— LLM 真正看得到图片,不再误回"看不到图片" (T185)
  • Move-to-session capsule clears on send and lives inside the composer top-right, no longer overlapping sent user messages or attachment chips (T185)
    Move-to 胶囊在发送时清除,并固定在输入框右上角内,不再覆盖已发出的用户气泡和附件 chip (T185)
  • Check for Updates correctly finds the latest published release, including prereleases (T133)
    Check for Updates 现在能正确识别最新已发布版本(含 prerelease) (T133)
  • intent:// / market:// / tel: / mailto: links inside WebViews open the matching app instead of showing ERR_UNKNOWN_URL_SCHEME (T134)
    WebView 中的 intent:// / market:// / tel: / mailto: 链接现在会打开对应的外部应用,不再报 ERR_UNKNOWN_URL_SCHEME (T134)
  • Bailian / Anthropic-compatible model refresh now consults models.dev (T143)
    百炼 / Anthropic 兼容路径的模型刷新会查询 models.dev (T143)
  • Terminal auto-raises the IME on open, matching iOS (T175)
    打开终端时自动弹出输入法,行为与 iOS 一致 (T175)
  • Theme switch no longer crashes when it races the auto-focus side-effect (T176)
    切换主题时不会再因 auto-focus 竞争而崩溃 (T176)
  • Send/retry claims streaming state synchronously so a fast double-tap can't fire two requests (T145)
    发送 / 重试同步占用 streaming 状态,避免快速双击触发两次请求 (T145)
  • Compact divider label and position match iOS — short "N messages compacted" plus correct sourceDbIds boundary on session reload
    压缩分割线文案与位置对齐 iOS —— 短文案 "N messages compacted",重启会话后基于 sourceDbIds 还原正确边界
  • Tool result expand sheet background follows the in-app theme override on dark mode (T126-fix)
    工具结果展开弹层背景跟随应用内 dark 模式(不再被系统主题反转) (T126-fix)
  • Memory tool thumbnail shows the write/get content instead of an empty pill
    记忆工具缩略图显示写入 / 读取的内容,不再是空胶囊
  • About → GitHub Repository row now actually opens the link (was a dead tap)
    About → GitHub Repository 行点击生效(之前是死链)
  • About screen points at OpenMinis/OpenMinis and drops the duplicate Report-an-Issue row; Settings entry renamed to "Submit GitHub Issues"
    About 页指向 OpenMinis/OpenMinis,移除重复的 Report an Issue;Settings 入口改名为 "Submit GitHub Issues"

Polish / 视觉打磨

  • All composer rows (text, attachments, +/slash/mic/send buttons, Move-to popup) now share the same 12dp horizontal padding so they line up vertically
    输入框内的所有元素(文本、附件、+/slash/mic/send 按钮、Move-to 弹层)统一 12dp 横向内边距,垂直方向完全对齐
  • Halved the breathing room between the last message and the input bar in both tool-status-bar and bare states
    压缩消息底与输入框/工具状态条之间的留白,有/无工具状态条两种状态下都减半
  • Move-to capsule restyled: outlined ring + arrow glyph, 0.5dp border, tighter 2dp vertical padding, sits inside the composer top-right
    Move-to 胶囊重新设计:圆环箭头图标、0.5dp 描边、上下 2dp 紧凑内边距,固定在输入框右上角内
  • Focused TextField auto-scrolls above the IME on Provider / Settings detail screens, mirroring iOS (T183)
    Provider / Settings 详情页聚焦的输入框自动滚动到键盘上方,与 iOS 一致 (T183)
  • Attachment chips get a 1dp border + 2dp soft shadow + xmark.circle.fill remove badge that spills past the chip's top-right (T179)
    附件 chip 加 1dp 描边 + 2dp 柔和阴影,删除按钮(xmark.circle.fill)半在 chip 上半在外 (T179)
  • User-bubble long-press menu anchors to the bubble with lighter shadow; small gap added between bubble and menu
    用户气泡长按菜单锚定到气泡、阴影更轻;气泡与菜单之间留出小间距
  • Shell tool enlarged view enforces a 4:3 minHeight so short outputs still read as a card
    Shell 工具放大视图强制 4:3 最小高度,短输出仍呈现为卡片
  • Live CPU/MEM HUD sits inside the shell card and hugs its content (T141)
    实时 CPU / MEM HUD 内嵌于 shell 卡片,紧贴内容 (T141)
  • Check for Updates row gets a leading icon to match the rest of About
    Check for Updates 行加入前置图标,与 About 其它行节奏一致

Full changelog: 0.1-preview...0.2-preview

0.1-preview

28 Apr 16:12

Choose a tag to compare

0.1-preview Pre-release
Pre-release

MinisApp Android 0.1-preview

⚠️ 早期预览版本 / Early Preview Build

这是一个早期开发版本,可能存在较多 bug,仅供尝鲜与反馈使用,请勿用于生产环境。

This is an early development build that likely contains many bugs. It is intended for early adopters and feedback only — do not use in production.


安装 / Installation

下载下方 MinisApp-0.1-preview-arm64-v8a.apk 后在 Android 设备上安装即可。

Download MinisApp-0.1-preview-arm64-v8a.apk below and install on your Android device.

  • 支持架构 / Architecture: arm64-v8a
  • 最低系统版本 / Minimum OS: Android 8.0 (API 26)
  • 签名说明 / Signing: 本预览包使用调试密钥签名,正式发布版本将更换为 release 密钥 / This preview is signed with a debug key; production releases will switch to a proper release key.

反馈 / Feedback

发现问题请通过 Issues 反馈。

Please report issues via GitHub Issues.