---
title: "2026.09.12"
date: 2026-09-12
extra:
  version: "2026.09.12"
  build: 17
  change_id: qmzspvoryzpw
  highlights:
    - text: "Give a provider an icon, and see it wherever that provider is named"
      path: "/settings/providers"
    - text: "Star tools and providers to keep them at the top of every list"
      path: "/tools"
    - text: "A picture a tool fetches shows in the chat, and the model can see it"
    - text: "Renaming a provider saves again"
    - text: "Drop a queued message before the assistant reaches it"
---

This release is about telling things apart. Providers can wear an icon now,
and that icon follows the provider onto every screen that names it, so
several endpoints of one kind stop reading alike. Tools and providers can be
starred to the top of their lists, and the lists agree with their pickers on
what order things come in. Pictures a tool fetches appear in the conversation
and reach the model. And a provider rename saves again, which it had quietly
not been doing.

## Providers wear an icon

Two providers of the same kind used to look identical in every list: same
glyph, similar name, nothing to say which endpoint an agent was talking to.
The provider form now has an icon field, the same one tools have: a glyph, an
emoji, a link, or the mark the endpoint's own site publishes, found from the
base URL. A provider without an icon looks exactly as it did.

Once set, the icon goes wherever the provider is named:

- Its row on the Providers screen and its own page.
- The agent list, beside the provider and model each agent uses, and the
  provider line on an agent's page.
- The app bar of an open conversation, under the title, so "is this leaving my
  device" is answered without opening the usage details.
- The spend breakdown, the usage details and a message's generation metrics,
  each marking the provider that billed the row.
- Every form that binds a model, for agents, compaction, enrichment and the
  output filter, and the title of the model picker.
- Key-exchange rows on the devices screen, so approving a share names the
  endpoint whose key it carries.

A provider that arrived through sync from a newer version of the app is marked
as unusable wherever it is listed, instead of drawn as a working endpoint of a
kind it never was.

Tool icons fill in the places that still lacked them: the agent page's tool
list, the tool kinds list when creating a tool, the tool test and capture
screens, and the tool rows in a conversation's spend breakdown.

## Picking an icon

The icon picker is a full-screen page now, like the model and tool pickers:
Cancel top-left, Use icon top-right, a live preview of what will be stored,
and the glyph and emoji catalogs get the whole screen to scroll in. Its four
sources stay on one row on a phone, and the back gesture closes it rather than
the page under it.

Find automatically no longer picks one mark and discards the rest. It shows
every icon the endpoint's host publishes, and the ones from the domain above
it and the domain it is registered under, each labelled with where it came
from and how large it is; tap one to use it, and the top-ranked one is filled
in for you as before. A provider on a local address is no longer searched for
at a domain that does not exist. Searching leaves nothing on the device unless
you accept a mark, and a multi-size `.ico` is now drawn at its largest size
instead of cycling between sizes.

An agent with the provider tools can set or clear a provider's icon the way it
already could a tool's, and can search an address for the marks published
there and read their sizes before choosing. It still cannot change a
provider's address or key.

## Stars, and lists that agree with their pickers

Tap the star on a tool's or a provider's row and it heads both its screen and
the picker that offers it. The star follows the tool across workspaces and the
provider to your other devices. A starred tool carries its star in the "Add
tools" picker too.

Below the starred rows, the Tools and Providers screens and their pickers now
share one order, newest first, with the tools that ship with the app grouped at
the end, so a thing sits in the same place wherever you meet it. An agent
listing your providers names them in that same order.

Around the lists:

- The Agents, Tools and Providers screens read alike: the mark on the left,
  the star and the edit or start-conversation shortcut on the right.
- "Add tools" on the agent form opens a picker with a checkbox per tool and an
  "Add N" button, instead of one tool per visit.
- A tool's row is titled with the part of its name that is not the kind, which
  the row already names: `notes` where it read `memory-notes`. The full name
  still identifies the tool on its page.
- A tool's page says when it was created and, once edited, when it last
  changed.

## Pictures in the conversation

A picture a tool fetched used to be encoded into text, which drew a placeholder
for you and spent tokens on bytes no model can read. It now appears in the
conversation as an image, and the agent can actually look at it. There is also
a fetch tool for an image at a URL you give the agent, so it can read a chart,
screenshot or diagram that is not behind a configured endpoint; its test screen
shows the picture rather than its bytes.

## Queued messages can be taken back

A message typed while the assistant was still answering could only be
cancelled by deleting it after it had already started the next turn. A
"Queued" message now shows a ✕ that drops it from the queue; once the assistant
picks it up, the ✕ disappears.

## Two forms that were losing edits

Renaming a provider and saving did not rename it, on any device with sync
peers, and had not for at least two releases: the form rebuilt around the
stored values and wrote those back. Every field on the provider form now saves
what was typed. The tool create and edit forms had the same flaw when anything
changed in the background while they were open; they keep what is on screen
until Save writes it.

## On-device models

- A model's settings open from its row in the provider's model list, for the
  pairing the row's weights and projector slots name, without making an agent
  first.
- Those settings open at once, with the draft-head list filling in a moment
  later, instead of waiting for the models folder to be scanned; and they open
  with the keyboard down.
- An unset context-size or cache-type knob opens on "Only this one" rather than
  "All devices", so a cap typed on a phone stays on the phone.
- The model list no longer jumps when the folder scan settles the "checking"
  mark: the availability icon sits beside the model name rather than on its
  own line.
- The on-device provider page names its roster "Assembled models" and keeps a
  single refresh button, and its row on the Providers screen names the models
  folder it reads on this device, where a remote provider names its base URL.
- The embedded engine moved from llama.cpp b10752 to b10920, bringing the
  gemma4 vision handling fix, upstream's Vulkan matmul, iq4_xs and argsort
  fixes, the MTP kv-cache allocation fix and the drafter placement fix.

## Elsewhere

- The app is titled "BYLM - Bring Your LM" on the Android launcher, the Linux
  window and desktop entry, and the navigation drawer header.
- On Android, Send on Settings → Diagnostics attaches the report to the mail as
  `bylm-diagnostics-<id>.txt` instead of pasting it into the body, where mail
  clients folded the long lines the symbolizer needs intact.
- The back gesture dismisses a dialog opened from a pushed page, or from a
  list's selection mode, instead of popping the page or dropping the
  selection under it.
- A link with no screen behind it lands on a page that names the link and
  offers to report it, and an agent, provider, tool or conversation that has
  been deleted, here or on a synced device, says so instead of showing a bare
  "not found".
- The What's new highlights that name the providers screen open it, instead of
  an error page.
- Model listings and image fetches identify themselves as BYLM to the server,
  as completions already did.
- On the website, the ROCm AppImage's download lists the AMD architectures it
  was compiled for, and "View as Markdown" on the privacy policy opens the
  source instead of a 404.
