Atelier v0.19.0-beta
Polish release: smoother first-day experience, more reliable build path, and more honest defaults. Much of this was driven by feedback from running a real agent (Hermes, on this very platform) against the v0.18 build flow and watching where it tripped — the rough edges it hit are now sanded down.
Coming from v0.18.x? Straight upgrade — one command. One default changes: description-driven builds now default to the classic engine; see below.
Description builds default to classic
When you create an app from a description, Atelier now defaults to the classic build engine — a multi-stage pipeline that plans against what you asked for and builds to it. Use this when your description pins specifics that must be honoured: a named language/framework stack, an exact API contract, particular endpoints.
The orchestrator engine is still one click away and still the right choice for open-ended “make me a working X” asks where you don’t mind it choosing the stack — but it’s no longer the silent default that surprises a first-time user whose description gets reinterpreted.
You can change the platform default in Settings → Build & Deploy, and
override per-build by passing pipeline_mode on POST /api/apps or in the
UI’s new-app form.
Bring-your-own-code: smoother first push, agent-visible diagnostics
The push-to-build flow had a few “first time” papercuts when an agent (or you) was driving it:
- Scaffold creates a truly empty repo. No seed
README.mdis committed, so your firstgit pushdoesn’t fight a stalemainand the rebase dance it implied is gone. - The webhook tells you why nothing happened. If a push lands while the
app’s still scaffolded (or in any state that defers a build), the event
stream now emits a
webhook_skippedevent with the reason — agents watching the stream can correct course instead of waiting for a build that was never going to start. - The persistent
/datamount is documented. Every app’s per-app PVC is auto-mounted at/data— write your SQLite file, uploads, cache, or log archive there and it survives rebuilds and pod rolls. The Build skill now covers what’s persistent and what’s ephemeral. - Token role clarified.
git pushthrough the proxy needs a Developer-role token (the same role as the REST authoring endpoints); Viewer tokens can clone/fetch but not push. The skill calls this out and the failure mode is no longer a mystery403.
The orchestrator now honours your described stack
If you scaffolded an empty repo and asked the orchestrator to build (e.g. “a Python FastAPI app that does X”), it could pick the wrong language or framework — there was nothing in the empty repo to anchor on. It now reads the described stack on empty-repo builds and starts from there.
Stuck builds are recoverable
An app left orphaned in building state (rare — but possible if atelier-core
restarted mid-build) used to need a kubectl-level intervention. Now:
- A supervisor pass detects orphaned
buildingrows and self-heals them on startup. - The UI shows a Cancel button on builds that have been running too long, so you can release the slot yourself without leaving the portal.
Per-app alert history
Alert history is now queryable per app:
GET /api/alerts/history?app=<name> returns just the alerts attributed to
that app, newest first. Useful for the “any alerts on app X lately?”
question without scanning the whole platform feed.
Skills bundle
The atelier-build and atelier-operate skills shipped with v0.18 keep
growing as the canonical agent docs:
- Engine choice —
pipeline_modeis documented end-to-end, including how the fallback differs between create (platform default) and update (the app’s original engine). - Persistent
/data— the BYO-code section spells out what survives rebuilds and what doesn’t. - Platform truths from the field — in-cluster Service ports (ingress-routed vs backend), the rebase-after-first-build pattern, and a few smaller fixes surfaced by running an agent against the real platform.
The skills bundle (latest/skills.tar.gz) is republished automatically on
every change, separately from the platform release.
Under the hood
- Git layer correctness:
ensure_repoonly treats an explicit 404 as “repo absent”, so a transient Gitea outage no longer risks shadowing an existing repo with a fresh one. - Redeploy dialog tidied: direct-mode apps no longer show the “regenerate with AI” radio (it doesn’t apply); the dialog mirrors the app’s actual build mode.
- CI: the integration-test spike accepts an
ATELIER_TOKENdirectly alongside user/pass, fitting how the test harness actually authenticates in CI.
Upgrade
For everyone — one command:
curl -Lo upgrade.sh https://tryatelier.blob.core.windows.net/tryatelier/latest/upgrade.shchmod +x upgrade.sh./upgrade.sh v0.19.0-betaIt rolls atelier-core, atelier-ui, and the MCP server pods. Your running
app pods aren’t touched; folders, pins, alert channels, and MCP server
deployments carry over unchanged.
Bug reports and feedback in the testers Discord channel. Thanks for testing.