Resources Changelog

Changelog

14 min read·Updated 30 Jul 2026

Draft. The history below is written to shape and has not shipped. Reconcile it against the tag history before publishing.

A vertical release timeline rendered as floating frosted-glass cards threaded onto a single thin metallic line running top to bottom. Each card carries a small etched version badge and one glyph for its dominant change type — a plus for new work, a chevron for improvements, a dot for fixes. Cards nearer the top sit slightly forward with a softer shadow; those below recede and blur. White background, strictly monochrome, one soft light source upper left, long contact shadows.

Every release. Every improvement.

This page records every meaningful change to Arble: new capability, changed behaviour, performance work, security fix. Entries are written for whoever is doing the upgrade, so each one says what changed, why it changed and what you have to do about it. Nothing else.

Patch releases that only fix defects are listed in the archive rather than given a section here — writing them out at length buries the changes that need a decision. Anything that alters an interface, a default or a stored format appears under breaking changes with a migration path and a removal version.

1.8.0 — Developer platform

Latest

22 July 2026·Stable

Tool authorship reaches four languages, MCP authorisation moves from the server down to the individual tool, and uploads survive a dropped connection. The runtime now reports readiness separately from liveness, which changes how a load balancer treats a node whose database is unreachable: it drains instead of returning errors.

The Arble desktop window as a thin frosted panel held slightly off-axis, with eight smaller cards orbiting it at varying depths — Tool SDK, CLI, API reference, memory, MCP directory, desktop automation, performance, security. Each is a matte white plane carrying a single engraved glyph. The nearest two are sharp; the rest fall into soft depth of field. White background, monochrome, editorial keynote lighting.

New

  • Tool SDK for Go and Rust. Both reach parity with Python and TypeScript: decorators, generated schemas, streaming results, publishing. A tool written in any of the four is indistinguishable to the runtime.
  • Per-tool MCP permissions. Grants attach to individual tools rather than to a whole server, so connecting a server that exposes forty tools no longer authorises forty tools. Existing per-server grants keep working — see migration.
  • Resumable uploads. Files above 100 MB upload in chunks and resume after a dropped connection instead of starting again.
  • Skill directory. Install a skill from a SKILL.md URL, or from the built-in catalogue covering PDF, Word, Excel and PowerPoint.
  • Tool search. arble tools search queries the registry by name, description and parameter — which starts to matter once a workspace passes a few hundred tools.
  • Structured run output. --json on arble run emits one JSON object per event, so a run pipes into a log processor without anyone scraping human-readable output.
  • Session export. A session serialises to one file containing its messages, tool calls and results, for archival or transfer between devices.

Improvements

  • Tool schemas are validated at registration rather than at first call, so a malformed parameter definition fails at startup instead of halfway through a run.
  • The permission prompt names the tool and the specific argument requiring approval, rather than the toolset it belongs to.
  • Registry lookup moved to an index built at load. Time to first tool call on a workspace with 500+ tools drops from roughly 400 ms to under 20 ms.
  • Streaming flushes on token boundaries instead of on a timer, removing the visible stutter on slow connections.
  • Memory search orders results by recency within a relevance band, so a current note outranks a stale one of equal similarity.
  • The CLI reports token usage and wall time when a run completes.
  • Model listings are cached for the session; switching provider no longer refetches the catalogue on every keystroke.
  • Failed tool calls carry the underlying error instead of a generic wrapper.
  • Log lines are single-line JSON, so a stack trace no longer breaks log collectors.

Bug fixes

  • A tool returning an empty string no longer ends the run as though it returned nothing.
  • Reconnecting to a session mid-stream no longer duplicates the last message.
  • Scheduled runs no longer drift by the duration of the previous run. The next wake-up is computed from the scheduled time, not the finish time.
  • Unicode in tool arguments survives the round trip to providers that require escaped JSON.
  • The desktop agent releases its file handle when a transfer fails, rather than holding it until restart.

Security

  • Per-tool MCP permissions narrow the blast radius of a connected third-party server. A server can no longer acquire a capability by adding a tool after you granted it.
  • Tokens issued to the desktop agent are scoped to the pairing and expire when you unpair, instead of living until manually revoked.
  • Dependency updates for two advisories in transitive HTTP libraries. Neither was reachable from the runtime's request path.

Developer experience

  • CLI. arble tools search, arble run --json, arble mcp permissions. arble doctor now checks pairing reachability as well as configuration.
  • SDK. Go and Rust at 1.0. Python and TypeScript gain typed streaming results.
  • API. GET /v1/tools accepts q for search. Errors carry a stable code beside the message, so clients branch on the code rather than parse prose.
  • Documentation. Tool SDK, CLI and API reference rewritten against the 1.8 surface.

Migration notes

Per-server MCP grants continue to work and will be removed in 2.0. Convert a server before then:

SHELL
arble mcp permissions <name>

Run migrations as a discrete step before rolling the application. Within a minor release they are additive, so the previous version keeps serving against the new schema during a rollout.

SHELL
arble server migrate

Breaking changes

None. Per-server MCP permissions are deprecated, not removed.

Known issues

  • Resumable uploads fall back to a single request against S3-compatible stores without multipart support, so files above 100 MB still restart on failure.
  • The Rust SDK's streaming API allocates per chunk. Fixed in 1.8.1.

1.7.0 — Durability

3 June 2026·Stable

Memory is encrypted at rest with project-scoped keys, workflows pause and resume at step boundaries, and a run no longer dies because the client that started it went away. Operators get a drain command, which is what makes a rolling restart something you can do during the working day.

New

  • Memory encryption at rest. Project-scoped keys, so a compromised key exposes one project rather than the whole store.
  • Workflow pause and resume. A workflow suspends at a step boundary and resumes with its context intact, including across a restart.
  • Graceful shutdown. arble server drain stops accepting work, finishes what is running, then exits.
  • Explicit run cancellation. A run is cancelled by request rather than by disconnecting — which is what makes the disconnect fix below survivable.
  • Notes and reminders. First-class objects the agent reads and writes, rather than free text living in memory.
  • Activity log. Every heartbeat wake-up, what triggered it and what it did, readable after the fact.

Improvements

  • Context compaction summarises the middle of a session instead of truncating the start, which preserves the instructions that set the session up.
  • Memory reindexing runs incrementally in the background rather than blocking startup.
  • The session list loads in constant time regardless of history depth.
  • The permission sheet explains each mode in a line, rather than requiring a trip to the documentation.
  • Provider failover retries the next configured provider on a 5xx instead of failing the run.
  • Token accounting separates input, output and cache reads, which makes cache savings visible.
  • Heartbeat intervals accept plain minutes as well as cron expressions.

Bug fixes

  • Streaming runs no longer terminate when a client disconnects. The run continues server-side and must be cancelled explicitly.
  • Memory writes issued during compaction are no longer lost.
  • A workflow resumed after a restart no longer re-executes its last completed step.
  • Schedules use the device timezone rather than UTC.
  • Large tool results no longer truncate mid-token in the transcript.

Security

  • Memory at rest is encrypted with per-project keys. Existing stores migrate in place on first start after the upgrade.
  • Session tokens rotate on privilege change, not only at sign-in.

Developer experience

  • CLI. arble server drain, arble run cancel.
  • API. DELETE /v1/runs/:id cancels a run. SSE streams send a terminal event on cancellation rather than closing silently.
  • Documentation. Self-hosting gains a rolling-restart procedure.

Migration notes

Encryption migrates the memory store in place on first start. The migration is single-pass and proportional to store size — run it against a staging copy restored from production first, so the duration is a known number before the window rather than a discovery inside it.

Clients that relied on disconnecting to cancel must call the cancellation endpoint. A run left uncancelled now runs to completion, and bills accordingly.

Breaking changes

Disconnecting no longer cancels a run. There is no compatibility shim, because the previous behaviour silently discarded work whenever a connection was flaky.

1.6.0 — MCP support

15 April 2026·Stable

Any Model Context Protocol server can be connected, and its tools join the same registry, the same permission gate and the same audit trail as the built-in ones. There is deliberately no second path for third-party tools.

New

  • MCP client. Connect remote servers over HTTP or stdio. Tools are discovered, typed and registered like any other.
  • MCP directory. A browsable catalogue with one-tap install, marking which servers require sign-in and which do not.
  • Third-party data disclosure. An explicit consent step naming what leaves the device, shown before the first call to a connected server.
  • Tool namespacing. Server-qualified names, so two servers that both expose search can coexist.
  • Connection health. Per-server status, last error, manual reconnect.
  • Coordinator mode. Multi-agent workflows through team creation and inter-agent messaging. Off by default.

Improvements

  • Tool results are truncated by token budget rather than character count, so a large result degrades predictably.
  • The registry deduplicates identical tools offered by more than one server.
  • Server handshakes time out after 5 s instead of hanging the tool list.
  • Permission decisions are cached per session, so an approved tool is not re-asked within the same run.
  • The transcript records which server served each call.
  • Failed connections retry with backoff rather than on a fixed interval.

Bug fixes

  • A server returning a malformed schema no longer prevents the remaining servers from registering.
  • Calls with optional parameters no longer send explicit nulls to servers that reject them.
  • Reconnection no longer duplicates registry entries.
  • stdio servers are terminated on app exit instead of being left running.
  • Long-running calls no longer hit the client timeout before the server's own.

Security

  • Connected servers are third parties: data sent to them leaves the device, and the consent step says so in those words before the first call.
  • Server credentials are stored in the platform keystore, never in configuration files.

Developer experience

  • CLI. arble mcp add, list, remove, test.
  • Documentation. New MCP Servers guide covering transport, auth, debugging and the trust model.

Migration notes

None. MCP support is additive.

1.5.0 — Scheduling

25 February 2026·Stable

Agents run on a heartbeat with the app closed, and every wake-up is recorded. This is the release where Arble stops being something you drive and starts being something that runs.

New

  • Heartbeat. A configurable interval that wakes the agent to work through a task file.
  • Background execution. Runs continue with the app closed, within platform limits.
  • Notifications. Completion, failure and approval requests surface as system notifications.
  • Daily digest. A built-in toolset combining weather, calendar events and pending reminders into one briefing.
  • Plan mode. A read-only permission mode: the agent may look, but not act.

Improvements

  • A wake-up that finds no work exits immediately rather than starting a model call.
  • Permission modes are per session, with a workspace default.
  • Battery use during idle heartbeats is down roughly 60%, by coalescing wake-ups.
  • Failed background runs retry once before notifying.
  • Token usage is attributed to the schedule that caused it.

Bug fixes

  • Schedules survive app termination and device restart.
  • Concurrent heartbeats no longer overlap when a run exceeds its own interval.
  • Notification taps open the originating session rather than the most recent one.
  • Approval requests raised while the app is closed are queued, not dropped.
  • Daylight-saving transitions no longer skip or double a scheduled run.

Developer experience

  • CLI. arble schedule to list, add and remove schedules.
  • Documentation. New Automation guide.

1.4.0 — Desktop control

14 January 2026·Stable

Pair a computer and the agent can run commands and operate files on it, over your own network or through a relay you configure. The phone stops being a chat client and becomes a control surface.

New

  • Desktop agent. A daemon for macOS, Windows and Linux, paired by QR code or pairing string.
  • Remote execution. Shell commands and file operations on the paired machine, each gated by the same permission prompt as a local tool.
  • Live View. Watch the paired machine's screen while the agent works.
  • SSH connections. Saved servers, with credentials stored encrypted on device.
  • Node sync. Memory, reminders, heartbeat, model configuration and the node list converge across paired devices.

Improvements

  • Pairing discovers agents on the local network instead of requiring an address.
  • Transfers resume after a network change rather than failing.
  • Command output streams as it is produced.
  • Sync is per domain, so a large memory store does not delay reminder sync.
  • The agent reports its platform and version during pairing, making version mismatches visible before they cause a failure.

Bug fixes

  • Pairing survives the phone changing network.
  • Commands producing no output no longer appear to hang.
  • Paths containing spaces are quoted correctly on Windows.
  • The agent reconnects after the desktop wakes from sleep.
  • Concurrent sync no longer produces duplicate reminders.

Security

  • Pairing establishes a shared key. A relay carries ciphertext and cannot read the session.
  • The SSH client cannot verify host keys, and says so in the interface. Connect only to servers you trust, on networks you trust.

Breaking changes

Node identity moved from device name to a generated identifier. Devices paired before 1.4 must be paired again. Names are now labels, and may repeat.

Version timeline

A vertical procession of monochrome cards, one per milestone release, receding slightly as they descend. Each carries an engraved version number and date in small monospace; the current release sits nearest the viewer and fully sharp. A single hairline runs through their centres. White background, matte and frosted materials only, soft contact shadows, generous negative space.
VersionMilestoneWhat it established
1.0Core runtimeThe agent loop, the tool registry and the permission gate, on device.
1.2MemoryDurable context across sessions, searchable and editable.
1.4Desktop controlPaired machines as execution targets, not just as clients.
1.6MCP supportThird-party tools as first-class registry entries.
1.8Developer platformFour-language SDK, searchable registry, per-tool authorisation.

How changes are categorised

Every entry falls into exactly one category. Where a change could belong to two, it is filed under the one that affects you most.

CategoryMeans
NewCapability that did not exist before. Additive.
ImprovementsExisting behaviour, better. No action required.
Bug fixesBehaviour that did not match the documentation or the intent.
SecurityAnything touching the trust boundary, credentials, or data at rest.
ConnectorsIntegrations and MCP servers.
Developer experienceCLI, SDK, API and documentation.
DocumentationMaterial corrections and new guides. Typos are not listed.
Breaking changesRequires action before or during the upgrade.

Migration guides

A migration guide is published whenever an upgrade requires action from you. If a release has no guide, upgrading it is a restart.

  • CLI changes. Renamed or removed commands. The old form keeps working for one minor release wherever that is possible.
  • SDK updates. Signature changes, published with a codemod when the change is mechanical enough to automate.
  • API versions. Breaking API changes ship under a new version prefix; the previous version stays available for the compatibility window.
  • Configuration. Renamed or relocated keys. The runtime warns on a deprecated key and carries on.
  • Permissions. Changes to a default grant, or to what a grant covers. These are always stated explicitly, never applied silently.

Versioning and breaking changes

Arble follows semantic versioning.

  • Major may remove deprecated interfaces and change defaults.
  • Minor adds capability and never removes an interface.
  • Patch fixes defects only.

A deprecated interface is announced in the release that supersedes it, keeps working for at least two minor releases, and is removed no earlier than the next major. The removal version is stated at announcement, so the deadline is known on the day the deprecation lands rather than discovered later.

Database migrations are additive within a minor release. Two adjacent versions can run against one schema, which is what makes a rolling upgrade possible without a maintenance window.

Release channels

Three parallel horizontal lanes rendered as brushed metal tracks at slightly different depths, each carrying frosted cards spaced by cadence — sparse on the topmost lane, denser through the middle, closely packed on the lowest. Unlabelled in the render; the caption below carries the names. White background, monochrome, raking light from the left.
ChannelCadenceUse it for
StableEvery 6–8 weeksProduction. Migrations tested; breaking changes announced a release ahead.
BetaWeeklyValidating the next release against your own workload. Feature-complete, not yet hardened.
NightlyEvery buildReproducing a bug against the current tree. No migration guarantees; never point it at a production store.

Upcoming

Work in progress, without dates. Anything here may change or be dropped.

  • Memory. Retrieval ranked on task relevance rather than similarity alone.
  • Workflow engine. Durable multi-step workflows with typed handoffs between steps.
  • Tool SDK. A local test harness and a conformance suite.
  • Connectors. Continued expansion, prioritised by request volume.
  • Enterprise authentication. SSO and directory-backed provisioning.
  • Observability. Traces spanning the agent loop, tool calls and provider requests.
  • Self-hosting. A smaller default footprint and a documented restore drill.

Documentation updates

PageChange
Tool SDKRewritten for four languages; publishing and streaming expanded.
CLIFull command reference, scripting and CI usage.
API ReferenceREST, SSE, webhooks and the error-code table.
MCP ServersTransport, auth, debugging and the trust model.
PlaybookChapters on planning, tool calling and memory.
MemoryEncryption, reindexing and retention.
PermissionsPer-tool grants and mode semantics.

Stay informed

  • RSS. changelog.xml — every entry, full text.
  • Email. One message per stable release. The address is used for nothing else.
  • GitHub Releases. Tags, artefacts and checksums.
  • Release notes. The upgrade view — what breaks, and what to run.
  • Status. Incidents and maintenance, kept separate from releases.
  • Blog. Why a change was made, when that is worth a longer explanation.

Archive

2026. 1.8.0, 1.7.2, 1.7.1, 1.7.0, 1.6.3, 1.6.2, 1.6.1, 1.6.0, 1.5.1, 1.5.0, 1.4.2, 1.4.1, 1.4.0.

2025. 1.3.x, 1.2.x, 1.1.x, 1.0.x — core runtime through memory and the first connectors.

Older. Pre-1.0 development builds are not archived. They predate the compatibility guarantees described on this page.

FAQ

How often does Arble release?

Stable every six to eight weeks, beta weekly, patches whenever a defect warrants one. A security fix does not wait for the next stable.

What counts as a breaking change?

Anything that makes working code stop working: a removed or renamed interface, a changed default, a changed stored format, or a narrowed permission. New optional behaviour is not breaking, even where it changes what you see.

How long is a version supported?

The current minor and the one before it receive fixes. Security fixes go back two minors. Older versions are not patched.

Can I skip versions when upgrading?

Yes, within a major. Migrations are cumulative and run in order. Read the notes for every version you skip — a breaking change in a version you jumped over still applies to you.

Where are the migration guides?

Inline, under the release that requires them, and collected in Release Notes.

How do beta releases work?

Beta is the next stable, feature-complete, before hardening. It runs the same migrations, so a beta store cannot be downgraded. Use a copy.

Is nightly safe to run?

Against a scratch workspace, yes. Against anything you care about, no — nightly can contain a migration that is later revised.

Must the desktop agent match the app version?

Within a minor, no: the pairing protocol is stable across a minor. Across a minor, upgrade both. The pairing screen reports a mismatch.

What happens to my data during an upgrade?

Migrations are additive within a minor and run before the application starts serving. Take a backup anyway, and test the restore — an untested backup is a hypothesis.

Why are some fixes only in the archive?

Patch releases fix defects without changing interfaces. Writing them out in full buries the changes that actually need a decision.

How do I report a regression?

Open an issue with the version you upgraded from, the version you are on, and the smallest reproduction you can manage. arble doctor output helps.