Skip to content

Atelier v0.9.8-beta

A platform-distribution release focused on simpler installs, in-app version awareness, and a public docs site. Six merged PRs since v0.9.7-beta.

Already on v0.9.7-beta? Skip to the Upgrade section. The full list of behaviour changes is short — only one of them changes how an install actually starts.


Highlights

Fresh install is now a single binary download

Atelier platform images (atelier-core, atelier-ui, mcp-fetch) now pull directly from ghcr.io/atelier-project/... on first boot. The installer no longer needs the three image tarballs alongside it — k3s pulls everything itself. The fresh-install flow drops from four curl commands to one:

Terminal window
curl -Lo atelier-install https://tryatelier.blob.core.windows.net/tryatelier/latest/atelier-install
chmod +x atelier-install
./atelier-install

Total download for a fresh install drops from ~190 MB to ~10 MB.

The installer is stamped with its own version at build time and templates the matching GHCR tags into the platform manifests, so a v0.9.8-beta installer brings up a v0.9.8-beta cluster — no floating-tag drift.

atelier-core and mcp-fetch versions are now in lockstep

Built-in MCP catalog entries (fetch is the only default-on one) version-pin to the running atelier-core. A v0.9.8-beta core deploys v0.9.8-beta mcp-fetch. An ATELIER_MCP_FETCH_IMAGE env override on the atelier-core Deployment is honoured if set — useful for dev builds and the upcoming offline-install epic.

Real platform version in Settings → System

The “Atelier version” line in Settings → System has shown 0.1.0 (<sha>) for every release; that was the workspace Cargo.toml version, which we don’t bump per release. It now shows the actual release tag (e.g. v0.9.8-beta (e6d24a3)), stamped into the binary by the build script. Local dev builds get a git describe value (v0.9.8-beta-3-gabc1234-dirty) so they’re recognisable too.

Dismissable update banner

A new update_check background task on atelier-core polls latest.json from the public CDN every 6 hours, compares with the running version, and surfaces a small banner at the top of the app shell when a newer release is out. Clicking through opens the release notes; upgrade still happens via upgrade.sh on the cluster node. The full one-click in-app upgrade flow is a separate piece of work for later.

The banner is dismissible per-version (admin only — global setting), so a newer release auto-re-shows it. Disable polling entirely with update_check.enabled = "false" in the settings table if you don’t want the phone-home behaviour.

atelier-mcp is now a release artifact

atelier-mcp — the local binary that exposes the Atelier API as MCP tools for Claude Desktop / Cursor / VS Code — used to require building from source. It now ships alongside atelier-install as a standard Linux/amd64 musl binary:

Terminal window
curl -Lo atelier-mcp https://tryatelier.blob.core.windows.net/tryatelier/latest/atelier-mcp
chmod +x atelier-mcp
sudo mv atelier-mcp /usr/local/bin/

Configuration and Claude Desktop wiring instructions live in the in-app docs (Settings → Documentation → External MCP Integration).

Public docs site at tryatelier.dev

tryatelier.dev is now the public-facing entry point — landing page, install guide, full user guide, Tailscale guide, troubleshooting, release history, disclaimer & licence. The site is built with Astro Starlight and deploys automatically from the main branch via Cloudflare; the canonical markdown lives in this repo’s docs/ and release-notes/ directories. New release notes appear at tryatelier.dev/releases/<tag>/ automatically once the release ships.

The Discord invite, GitHub link, and disclaimer page are linked from the site footer on every page.

Crash-monitor guard against deleted apps

The crash monitor used to read its app list from K8s pod labels, not the database. When an app was deleted but its K8s resources lingered (orphans — see #328), the monitor would call Nova every 30s in perpetuity for ghost apps, racking up token spend. A defensive guard at the start of analyze_and_store now skips Nova diagnosis when the app has no DB row, with a clear log line. Closes a real spend-leak observed in the wild.


Behaviour change worth knowing

Fresh installs of v0.9.8-beta require outbound HTTPS to ghcr.io.

That’s the only behaviour change. Existing clusters upgrading from v0.9.7-beta and earlier are unaffected — they keep their existing mcp-fetch deployment (which references registry.atelier.local/mcp-fetch:latest) until you manually re-deploy via Settings → MCP Servers.

If you need fully offline / air-gapped installs, that’s tracked as a follow-up epic (#386). The platform tarballs are still produced by every release and not being deprecated — businesses without outbound internet, on-prem labs, and local-LLM-only deployments are explicit use cases. Until #386 ships, the tarball-mode upgrade path works for migrating pre-v0.9.8-beta clusters between releases.


Upgrade

Terminal window
curl -Lo upgrade.sh https://tryatelier.blob.core.windows.net/tryatelier/latest/upgrade.sh
chmod +x upgrade.sh
./upgrade.sh v0.9.8-beta

Takes ~30 seconds. Running app pods aren’t restarted; only the Atelier control plane (atelier-core + atelier-ui) rolls.

The upgrade does not rewrite an existing mcp-fetch deployment. Pre-v0.9.8-beta clusters keep their registry.atelier.local/mcp-fetch:latest deployment after the upgrade — functional, just not migrated to GHCR. To move it: Settings → MCP Servers → delete mcp-fetch, then the catalog bootstrap will re-deploy it pulling from GHCR on the next core start.

If you’re doing a fresh install rather than an upgrade, see tryatelier.dev/install/.


Public site & docs

Bookmark these:


Feedback

Bug reports and feedback in the testers Discord channel. Thanks for trying it.