Releases: Robertg761/BobBot
Releases · Robertg761/BobBot
Release list
v1.4.1
[1.4.1] - 2026-09-14
Changed
- Crash reports you can send. If BobBot crashes, the report is kept on the phone. Settings › About › Report a problem shows when it happened, with Share (any app: email, Telegram, a chat with your bot) and Clear.
- Chat bubbles. Bot conversations can open as Android chat bubbles once you allow bubbles for BobBot in the notification's settings. A dedicated bubble activity shows just that chat.
- A reply's own thinking, when there were no tool calls, shows as the same quiet "Thought about it" row as the work rows, so every turn looks alike.
- The last message's time label no longer hides behind the message bar.
Verified
- The Allow / Allow here / Deny buttons on a "needs your decision" notification were exercised against a live request: Allow recorded the approval on the server and swapped the notification for "Allowed for Steve".
v1.4.0
[1.4.0] - 2026-09-14
Changed
- Chats read like conversations. A bot's working steps (tool calls, thinking) fold into one quiet row, "Worked for 40s · 5 steps", that expands on tap. While the bot is busy the row shows the current step. Errors stay visible on their own line.
- Decide permissions from the notification. "Clove needs your decision" now carries Allow, Allow here (this tool for the rest of the conversation) and Deny. The result replaces the notification with a short confirmation.
- Bots are Android conversations. Each bot has a long-lived conversation shortcut, so its notifications appear in the Conversations section, can be marked priority, and the bot can be pinned to the home screen.
- A banner when a different bot replies. While you are reading one chat, a reply in another shows a banner at the top that opens that chat. Notifications stay quiet while the app is open.
- Share into a bot. BobBot appears in Android's share sheet for text and images. Pick a bot; the text lands in the composer and images are attached, ready to send.
- Pair by QR code. The BobBot team tab in the Hermes dashboard shows a QR code. Scan it with the phone camera to fill in the server address; if BobBot is already set up it offers to switch servers.
- Long-press a message to copy it, share it, or send it again.
- The chat header no longer shows the model id. It shows a status only while the bot is working or waiting; the model stays in the ⋮ menu.
- Keep the link alive on Samsung. A one-time card in the inbox (and a row in Settings) asks Android to exempt BobBot from battery optimisation, so the background link is not put to sleep.
- Settings explains how to switch off the "Listening for your bots" notification on Android 13 and later, with a button that opens the right screen. BobBot keeps listening.
Team extension 0.3.3
- New dashboard route that renders the pairing QR code (self-contained encoder, no new dependencies).
v1.3.5
[1.3.5] - 2026-09-14
Fixed
- The expanded bot-message notification is headed with the bot's name. Android showed the app name there for a one-to-one thread; the conversation is now always titled with the bot (or "bot · task chat").
v1.3.4
[1.3.4] - 2026-09-14
Everything in this release comes out of a deep audit of the app and the team extension, run part by part (inbox and groups, chat and streaming, background link and notifications, the Hermes plugin).
Fixed
- Notifications name the bot. Every notification carries the bot's display name (persona or nickname): completions, scheduled results, bot-to-bot hand-offs, reply confirmations, and ntfy pushes. Names are cached on the phone, so the link service names bots correctly straight after a reboot, before the app has loaded anything.
- Messages from a bot stack as one conversation. A bot that sends several messages updates one notification thread instead of piling up separate ones; a reply from the shade clears that thread.
- The background link stays up on Android 15 and 16. It now runs as a "special use" foreground service; the previous type was cut off after six hours a day. If Android refuses to promote it, it stops cleanly instead of crashing the process, and stopping the link from the notification also drops the socket when the app is closed.
- Streaming is cheaper and steadier. Deltas are batched about every 50 ms instead of one state update per token; long transcripts are projected off the main thread; every streamed bubble carries a timestamp so day separators and time labels stay right; a failed send removes the phantom message and restores its attachments instead of leaving it looking sent.
- A bad event can no longer stop all chats. One malformed frame used to end the event pump for every open conversation. Unscoped events are only attributed when there is exactly one place they can belong.
- Reconnects no longer multiply. The socket keeps a single reconnect loop; a second "closed" callback for the same connection is ignored. Access tokens are URL-encoded in the WebSocket handshake.
- Photos attach without freezing. Images are decoded, downscaled to 2048 px and JPEG-compressed off the main thread, so a raw phone photo no longer builds a tens-of-megabytes frame on the UI thread.
- Polling (inbox, group chats, team, permission cards) pauses while the app is in the background and stops on leaving a screen.
- The composer stays typeable during a socket blip; only sending waits for the connection. The rename dialog seeds from the current title. Two identical toasts in a row both show.
- Session-token installs (loopback, no auth) work from the link service and reply receiver too; the token mode is restored on first use rather than only when an activity starts.
- Request paths are encoded segment by segment; a server address with a path is rejected at setup instead of silently failing every request. Boot restarts and shade replies no longer block the main thread; a shade reply gives up after eight seconds.
- Inbox: a group with activity you have never opened counts as unread; a group with no activity yet does not. Duplicate sessions, rooms, members and tasks are filtered out before they reach a list.
Team extension 0.3.2
- The acting profile is captured when the plugin registers, so a specialist on a thread that lost its home context can no longer be mistaken for the authority (which silently disabled review). The guidance text uses the profile Hermes hands it.
- The kill switch is checked before anything that can fail, so a broken install can always be turned off.
- Undecided requests that time out are marked expired, their review card is closed, and a fresh request replaces them; denials stay on record for a week so the same action is not quietly re-asked an hour later.
- The nudge that tells a bot its decision runs with a scrubbed environment: no kanban worker identity, no chat session, no cron delivery target from whoever decided; its stderr goes to the profile's logs.
- Review tasks target the request's own board even from inside another board's worker, and get ten minutes instead of three.
todo_listandkanban_attachmentspass without review (the old list named a toolset, so every planning call was stopped). A moved extension re-points its symlink instead of failing setup. Creating a bot no longer copies the authority's private memories; model and provider must be given together.- A decision that landed but whose follow-up failed now returns the decision with a note instead of an error.
v1.3.3
[1.3.3] - 2026-09-14
Fixed
- Crash on opening a chat that contains a table or code block (introduced in 1.3.2 by the bubble-hugging change). Bubbles still hug plain prose; anything with tables, code, lists or headings takes the full width. If you are on 1.3.2, update.
v1.3.2
[1.3.2] - 2026-09-14
Changed
- Permissions you can actually act on. A bot that is stopped on a team permission shows a card at the top of its chat: who wants which tool, the command or path, what your main bot said, and Allow / Allow this tool here / Deny. The inbox row shows "Needs your decision". Team & permissions is rebuilt around the same cards: what needs you, what the authority is still reviewing, the team, and history folded away.
- Decisions have a scope. "Allow" is this action once; "Allow <tool> here" lets the bot use that tool for the rest of the conversation (8 hours), so it is not stopped again for every read. The authority bot has the same choice and is told to use it for read-only or clearly repeated work.
- Bots pick up where they left off. A decision is delivered into the bot's chat as a message from the authority and it retries on its own; pure lookups (tool search, tool descriptions, listing jobs) no longer need review at all. Requires team extension 0.3.0.
- Scheduled results come back to the app. New automations deliver to the chosen bot's chat by default (the "… chat (in BobBot)" targets are listed first), and a result delivered into a bot's chat notifies you like a message from that bot unless you already have the chat open. Bots are told to use bot-chat delivery for anything meant for you and never to claim results can't reach the chat.
- Hermes' own tool-approval prompts read "Allow", "Allow in this chat", "Always allow", "Deny".
- Team & permissions is in the inbox's ⋮ menu, with a count when something needs you; a decision notification opens the bot's chat, where the card is. Your main bot's chat shows how many reviews it is sitting on, with a link to them.
Fixed
- The keyboard capitalises sentences in chats, group chats, and the description, persona, role and group-name fields. The message box gave the keyboard no hint before, so it stayed lowercase.
- The send and stop buttons sit inside the message bar with room around them instead of being jammed into its edge.
- Bot bubbles hug their text like your own do, instead of always stretching to the maximum width.
v1.3.1
[1.3.1] - 2026-09-14
Changed
- Far fewer notifications. Bot-to-bot board traffic is off by default and, when on, only reports a bot finishing or getting stuck on work another bot gave it. The team extension's permission-review tasks never notify. New "Decisions for you" notifications fire only when your main bot escalates a specialist's request to you, and tap through to Team & permissions.
- The background link notification is now minimum importance: no status-bar icon, no sound, collapsed at the bottom of the shade. Android requires it while BobBot listens in the background; stopping the link from Settings removes it.
Fixed
- Streaming replies no longer jitter. The chat snaps to the newest text without animation while a reply streams, animates only when a new message arrives, and stops following the moment you scroll up, until you return to the bottom. Group chats behave the same way.
- An
https://server address no longer gets port 9119 appended. A tunnel or reverse proxy on 443 (for example a Cloudflare tunnel in front of the dashboard) now works by typing just the hostname. Plainhttp://addresses and bare hosts still default to 9119.
v1.3.0
[1.3.0] - 2026-09-14
Added
- Bots can message each other. Hermes' teammate messaging (Bot Mode) is switched on for every bot from the inbox banner, automatically for bots BobBot creates, and per bot from its profile, where you can also set the one-line role other bots see. Each bot's chat then carries the roster and the
message_agenttool. - Teammate messages look like messages. A DM from another bot, and a bot's reply to a DM this bot sent, show as that bot's bubble with its avatar and name instead of as your text or a system line. Inbox previews read "Steve: …".
- Clove can create bots by talking. The team extension adds
create_bot(name, role, persona, model; cloned from the authority, enrolled in teammate messaging and team review),configure_bot, andlist_bots. Bots messaging each other no longer needs a permission review. - Hand-offs in the chat. Open board tasks a bot is assigned or created appear as chips above its conversation; tap one for the network. Board notifications open the assignee's chat.
- Groups: @mention completion for members while you type.
- Reply from the notification shade; the reply goes into the same conversation.
- Day separators and times in chats.
Changed
- The inbox refreshes from gateway change events and asks the server only once a minute otherwise.
- Welcome screen copy describes the inbox layout.
- Team extension version 0.2.0. Reinstall it with
server/install.pyto pick up the new tools.
v1.1.2
[1.1.2] - 2026-09-14
Fixed
- Persona templates no longer replace a bot's chosen name with "Persona". New personas include the bot's name, and existing generic headings fall back to the profile name.
- Bot cards no longer show the messaging gateway as a chat availability indicator. Direct chats start on demand.
v1.1.1
[1.1.1] - 2026-09-14
Fixed
- Creating a bot no longer fails with HTTP 422 on Hermes 0.21.2. Cloned bots retain their inherited skills.