diff --git a/CHANGELOG.md b/CHANGELOG.md index 837d15f4..0b177ece 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ This changelog tracks **Minis for Android** as an independently maintained Andro ## Unreleased +## 0.0.3 — 2026-10-11 + +- A model's `400` now says what it is about when the text allows (a tool call without its result, a conversation that is too long, an image, the model name, the thinking level); the provider's own text is labelled as such, and the error banner expands when tapped to show it in full. - Fixed a chat that kept failing with `400 No tool output found for function call …` (or `No tool call found for function call output …`) on OpenAI Responses models and never recovered, while a new chat worked. A tool call stored as `call_x|fc_y` and its result stored as `call_x` were treated as two different ids, so the history repair deleted a real result and the request went out unpaired on every retry. Calls and results are now matched on the `call_x` part, and the Responses request is checked once more just before sending: a result with no call and a repeated result are dropped, a call with no result gets a placeholder. Ported from OpenMinis 1.14. - Device protection (Settings > Permissions, on by default): privileged commands from the agent, `android-root-cli` and the Android tools can no longer write partitions or the system partitions, remove `/data/system`, `/data/misc`, `/metadata` or `/data/adb`, uninstall or disable core system apps, factory-reset or remove user 0. Nothing is asked: the agent gets `DEVICE_PROTECTED: : ` and tries another way. Everything else stays open. Refusals are listed under the switch. When `/data` is nearly full the app freezes its own terminals and refuses new bulk writes until space is freed. `android-root-cli partition read` exports a partition read-only. - Reasoning items replayed on a Responses conversation are re-serialized to the fields official Codex sends (id, summary, content, encrypted_content) instead of the raw backend object, so extra backend-only fields can no longer cause `400 Unknown parameter`. diff --git a/src/android/app/build.gradle.kts b/src/android/app/build.gradle.kts index 50772292..1d88b137 100644 --- a/src/android/app/build.gradle.kts +++ b/src/android/app/build.gradle.kts @@ -18,7 +18,7 @@ plugins { // X.Y-dev < X.Y-beta.N < X.Y < X.Y.Z-beta.N < X.Y.Z // code = major * 1_000_000 + minor * 10_000 + patch * 100 + stage; stage is 0 for -dev, N (1..98) for -beta.N // and 99 for a stable release. -val appVersionName = "0.0.2" +val appVersionName = "0.0.3" val appVersionCode: Int = run { val match = Regex( """^(0|[1-9]\d{0,2})\.(0|[1-9]\d?)(?:\.(0|[1-9]\d?))?(?:-(dev|beta\.([1-9]\d?)))?$""",