- Settings is now a menu. The setup card stays on top; below it are eight pages in place of one long screen: Agents and models, Bubble and chat, Voice, Safety and approvals, Background and automation, Tools and connections, Appearance, Backup and about. The settings themselves are unchanged, each row says what its page holds
- Fixed: a chat could stay "working" forever when its agent died or was killed, and a chat waiting for it as a sub-agent with it. A run now always ends:
- the run stops when the agent itself exits, also when something it started keeps running
- an agent that failed without a word is said so in the chat
- if Buddy's helper in Linux is killed outright, the chat ends the run after a few seconds
- A quiet notification while a chat works off the screen (hidden screen, background browser, Linux tools, thinking): it names the chat, a tap opens it, Stop ends the work
- Download server (Agents and models): where Buddy's Linux, its packages and the agents installed with npm come from. Default almost everywhere; servers in mainland China (USTC, TUNA, Aliyun), Russia (Yandex) and Iran (Mobinhost) for where the default ones are blocked or cut off, or Custom with any Alpine mirror's address and an npm registry. The system image is still checked against its SHA-256 and every Alpine package's signature is checked
- Local models: Buddy asks a llama.cpp server for the context size it really runs with, so a long chat is shortened before it overruns the server
- Appearance: an accent colour taken from your wallpaper (Android 12+)
- Fixed: the live voice notification and the "Buddy is using your phone" notification could remove each other
Full Changelog: v2.3.8...v2.3.9
Which file? Download buddy.apk: it updates itself. Buddy is also on F-Droid, where each version arrives a few days after it is released here. fdroid-check-only-v2.3.9.apk is only there for F-Droid's reproducible-build check, and doesn't update itself.