Bolt 0.1.159
Bolt 0.1.159
Colour picking works. The eyedropper shipped in an earlier build could not
actually fire: the desktop shell broadcasts the cursor position every sixteen
milliseconds whether or not anything moved, and the dwell timer was restarted on
every one of those, so the hundred and fifty milliseconds it needed to elapse
never did. The check that was supposed to discard a stale sample compared object
identity against a value that was freshly allocated each time, so it could never
be true either. Dwelling over a colour now shows the swatch and its hex value,
the timer restarts only when the cursor has genuinely moved, and a colour that
cannot be read says so instead of failing quietly.
New features
Colour is a real verb on the ruler overlay. Hold the pointer still over any
pixel on screen and Bolt reads it, shows the swatch, and offers the value in the
formats you are likely to want. A single click samples immediately without
waiting for the dwell. Where a sampled colour is close to one of your design
tokens, that token is named alongside the raw value, so a screenshot of a
product can be traced back to the palette it came from. The pixel itself comes
from a new native path rather than a screenshot round trip, which is what makes
the reading immediate.
Bolt speaks the current Model Context Protocol. The client now implements the
2026 revision alongside the existing one, so servers written to either will
connect. Servers that run as local processes are supported over stdio, with the
spawned process given no window of its own. Import asks before it acts: when a
server is added, the tools and permissions it brings are shown for confirmation
rather than being enabled silently, and a picker lets you choose which of a
server's tools are exposed. Cancellation and progress are wired through, so a
long running tool call can be stopped and reports how far it has got.
Improvements
Messages in a conversation stay in the order they happened. Reopening a chat
used to sort some rows by an internal counter that resets, which could place a
turn from weeks ago among today's. Every message is now anchored to its real
time when the conversation loads.
Typing a command in the launcher consumes the text that summoned it. Previously
the stem you typed could survive into the command you had just opened, so the
first thing a command saw was the word used to reach it. That now happens in one
place for every command rather than for the thirteen that had special cases.
Fixes
The Integrations page could be taken down by a connected server that published
two tools with the same name. The page reported that something had gone wrong
and suggested retrying, but the tool list was identical every time, so retrying
could never work. Duplicate names are now handled where they are read.
Logging out and back in no longer leaves work running in the background. A
liveness timer and its listeners were registered again on each sign in without
the previous set being released, so the beats compounded with every cycle. Icons
that failed to extract were re-requested without limit, which flooded the bridge
between the interface and the desktop shell and could freeze the window shortly
after a second sign in. Both now release what they registered.
A file input in the embedded browser could close the application instead of
opening a chooser. The dialog code treated a panel it could not create as
something to abort on rather than a case to handle.
Bolt no longer takes a place in the Dock or the application switcher without a
window to show. On the path that deliberately starts Bolt hidden, the window was
reported as visible, so under the setting that shows Bolt only while it is open
it appeared in the switcher with nothing behind it and selecting it did nothing.
The window's real state is reported now. A launch that has already raised the
window also no longer leaves a second raise waiting to interrupt you later.
Security
Bolt publishes a security contact and a vulnerability disclosure policy. The
contact is served at the standard well known location and from inside the
desktop application itself, so it is reachable even when the machine is offline.
The policy states what is in scope, what to expect from us and when, and the
safe harbour we extend to researchers acting in good faith.
Dependencies carrying published advisories have been updated, including the
object store library used for file handling. Tokens held for connected accounts
are encrypted with a modern authenticated construction, and the key used is
derived per record rather than shared. Deployments that enforce device posture
can now require it as a condition of access, and an inventory that returns only
part of its result is treated as a failure rather than as an empty answer.
Connecting a Google account asks only for what has been approved. A request
used to be merged with every permission the account had ever granted, so a
tester who had once approved something broader carried it into each later
connection and met a warning screen that could only be cleared by revoking the
application by hand. A request is now exactly what the application declares.
Where an organisation supplies its own Google client, the permissions asked for
follow that client rather than the one we host, so a deployment is no longer
narrowed to our own read only set.
Every build of this release was produced from a single immutable point, with
each platform measured against the same recorded commit before it was signed.
The macOS application is signed and notarised by Apple. Windows binaries are not
yet signed; that work is tracked and will follow.