Destaris

Changelog

What’s new

Release notes for Destaris, newest first.

0.5.10

One Recent runs list for every kind of run

  • Recent runs shows everything now. Workflow runs, Loop passes, and Agentic Workflow runs used to live in separate places — Loop and Agentic runs didn't even show up in Recent runs at all. They're now one merged, newest-first list, each row badged by type, with filter chips for both type (Workflows / Loops / Agentic) and status — and only the outcomes actually present in your runs get a status chip.
  • The claimed default model matches the one that runs. A few places in the app still said "Default (Opus 4.8)" after the engine's real fallback had already moved on. Fixed everywhere a model field shows its default, and pinned with a test so the two can't drift apart again.
0.5.11

A spending cap for Loops and Agentic Workflows, and honest token counts

A run that displayed "248M tokens" turned out to be almost entirely cheap cache reads — this release fixes both the display and the real risk that number was pointing at.

  • Runs can't spend forever. A Loop or Agentic Workflow now carries a token-spend ceiling (maxTokens) — 10,000,000 input+output tokens by default, on by default, not opt-in. Set your own number, or write unlimited to remove the cap. Spend the whole budget and the run stops cleanly as its own honest status, over-budget — never disguised as stuck or failed.
  • Tokens, split honestly. Run rows and node detail now show real input/output spend separately from cache reads, so a cache-heavy run doesn't read as an enormous one. Cost that genuinely can't be measured (an AI runner that doesn't report its own usage) now shows — instead of a fabricated $0.00.
0.5.12

Nested runs share their parent's budget, plus an optional API key

  • A sub-run can't escape its parent's budget. A workflow or Agentic Workflow called from inside a Loop or Agentic Workflow now charges the same token budget as its parent, rather than running unmetered — nesting can no longer be a way around the cap, and a child that trips it ends the whole run over-budget, never failed.
  • Agentic Workflows get the same Max tokens field Loops got. Set it from the New Agentic Workflow dialog, same as a Loop's own settings panel.
  • The Tokens · today tile is honest now. It sums real input+output spend, with cached tokens called out separately, instead of a cache-inflated total.
  • An optional Anthropic API key for agent runs. Settings can now hold your own Anthropic API key, encrypted on your device — turn it on and Claude agent steps bill that API account instead of your Claude Code subscription. Off by default; only affects the Claude runner (Codex, Gemini, and Rovo are unchanged); takes effect on the very next run, no restart needed.
0.5.9

Open a Loop's items without leaving the canvas

A small follow-up to last release's Items list.

  • Click an item to read it. In a foreach stage's Items list, any item that looks like a readable file (.md, .txt, .json, .yaml, .yml, .csv, .log) is now a link — click it and its full contents open right there in the canvas's viewer, instead of just the truncated label you saw before.
0.5.8

Watch a Loop iterate, and say what it runs on

This release makes a running Loop's iterations visible, and lets you declare exactly what inputs a Loop is willing to run against.

  • Live iteration count on the canvas. A running task.foreach or task.loop stage now shows its current lap right on the canvas — "3 of 7" — and every stage completed that lap wears the iteration's own colour, so the canvas never shows a stale status left over from an earlier lap.
  • An Items list in the run view. Open a foreach stage's run detail and see every item it's working through — a swatch in its own iteration's colour, a checkmark once it's done, a pulsing dot on the one running now, and a red cross on the one a mid-loop failure died on.
  • Declare what a Loop runs on. A Loop can now say which inputs it accepts — text or a file, specific extensions, even a filename pattern — and Destaris enforces it everywhere: the "Run on an input…" picker only offers matching files, the editor flags a default input that breaks the Loop's own rule, and a keyed run that violates it is refused before it starts.
  • A spec's run wears the spec's own title. Run a Loop on a markdown file and its keyed run is now labelled with that document's own title — its frontmatter title: or its first heading — instead of a generic filename snippet.
0.5.3

See inside every loop

This build is about seeing — and trusting — what a Loop is doing.

  • Every iteration, mapped out. A Loop redrafts its workflow until it reaches the goal. Now you can open any past iteration and see the full workflow it built, laid out as a graph — so you can tell exactly what it tried and where a run stopped.
  • Readable memory. A Loop's memory reads as plain, labelled fields instead of a wall of JSON: what it found, what it decided, where a run errored.
  • Loops that get stuck say so. A Loop now hands its run input straight to the workflow it builds, so a workflow that needs a value actually gets it — and if a run fails the same way twice, the Loop stops right away and tells you why, rather than quietly retrying to no end.
  • Simpler runs. Start a keyed run from a pasted issue key or a file you pick — no path typing.
0.4.2

Cancel now cancels — and the agentic path arrives

Nothing survives Cancel anymore. Workflows can run heavy things — test suites, builds, AI agents doing real work. Until now, cancelling a run (or quitting the app) stopped the workflow but could leave those processes running behind your back; one runaway test sweep ate 25 GB and forced a force-quit that didn't even reclaim it. Fixed properly: every process a step starts now belongs to the run — Cancel kills the whole tree, for every step type and every AI provider (Claude, Codex, Rovo Dev, Gemini). Cancel also now works on scheduled runs, not just ones you started by hand. And if the app ever dies mid-run, it cleans up anything left behind the next time it starts, and tells you it did.

The agentic path. This release also ships the first full set of agentic building blocks:

  • Loops that know when to stop. until conditions ("repeat until the reviewer approves"), automatic stuck-loop detection, a Wait step for pacing ("check CI every 5 minutes"), and commands whose exit codes are data — so "run the tests until green" is now four nodes.
  • Route to a workflow. An AI step that picks which of your workflows should handle the work — it can only choose from the list you scope, and hands anything unmatched to a person.
  • Invent a workflow. An agent that drafts a new workflow to handle a task, validates it, files it separately from your own workflows (badged, always identifiable), runs it, and shows you exactly what it made and why. Keep the good ones with one click of review; agent-made workflows never enter your own list without you.
  • See the agent's thinking. Every AI step now stores what it was asked, what it did, and why it decided — readable in the run view, with your secrets scrubbed before anything touches disk.
  • Starter templates. Four ready-made workflows in the empty state that teach the patterns.

Also: the model picker gains Claude Fable 5 and Sonnet 5, plus the current Codex models (GPT-5.6 Sol/Terra/Luna); the Map's workflow cards match the editor's design; and the website now explains loop engineering at /docs/building-agentic-loops.

0.4.3

Readable runs, honest settings, and a memory guardian

A release built from a week of running Destaris hard on real work.

  • You can read your runs now. Output is multi-line and expandable; JSON pretty-prints; an agent's decisions read as sentences ("Chose handle-bug because…"), with raw data behind an Advanced toggle. The elapsed timer shows how long a step has actually been running — not how long you've had the panel open — and the live activity feed makes a working agent distinguishable from a stuck one.
  • Your model settings are provably honored. An audit found Codex silently ignoring a step's chosen model, and Gemini/Rovo never receiving one; all fixed, and the run view now shows the model and effort that actually ran, not what was requested.
  • Schedules don't double-handle work. If a workflow is still running when its schedule fires again, the new run is skipped (visibly) or queued — your choice. Steps that read lists can claim items while working them, so two runs never process the same thing.
  • A memory guardian. Steps that run heavy things (test suites, builds) can declare a memory cap — breach it and the whole process tree is stopped with a clear message. Mark a step heavy and only one heavy step runs at a time, waiting visibly for a free slot, and never launching into an already-strained machine.
  • Agents that need more freedom can ask for it. A new per-step access level — broad (write in its folder, use git and package managers; fixes most "I'm blocked" reports) or full (no prompts at all), gated behind a master switch that's off by default, badged on the canvas, and recorded in every run so you always know what ran unrestricted.
0.4.1

The Map works again with nested folders

Two Map fixes, plus the batch of work that landed alongside them.

Nested folders, done properly this time. 0.4.0 shipped a change that drew a circle around every folder in a nested path — and it made the Map unusable for anyone with a folder tree more than a level or two deep. Nothing crashed; the canvas just grew three times too big and the view zoomed out until every workflow card was an unreadable speck. Circles turned out to be the wrong shape for the job — a circle drawn around two circles is mostly empty space, and the waste multiplies with every level of nesting. Nested boundaries are back in this release, drawn as hulls that hug their contents instead. Deep folder trees now read at a glance without blowing up the canvas.

The blank Map. Separately, a workspace with enough workflows calling each other could push the layout simulation into divergence — the camera ended up pointed at nowhere and the Map rendered blank. The forces that pull related workflows together now scale correctly with workspace size, the layout is tighter and overlap-free, and both bugs are pinned down with regression tests so they stay fixed.

Also in this release:

  • Set a schedule without knowing cron. The trigger step now has a dropdown — every few minutes, hourly, daily, weekly, monthly — with hour and minute fields, and a plain-English sentence telling you what it will actually do ("Runs every Friday at 17:30"). Raw cron is still one click away, and an expression the picker doesn't recognise is left exactly as you wrote it.
  • Run it again. Any past run now has a "Run again" button that reuses the input it was originally started with. Runs that were interrupted by a restart now say so, instead of looking like a step that failed on its own.
  • A GraphQL step. GraphQL reports its errors in a 200 OK response, which meant an HTTP step would call a failed query a success and hand the next step nothing. There's now a dedicated GraphQL step that fails when the query fails — and the HTTP step will point you at it rather than get it quietly wrong.
  • Integrations: free where we can, paid where we can't. Resend, GitHub, Google, Discord and Telegram connect entirely on your machine, so they're free. Slack, Notion and Atlassian need us to run an OAuth server on your behalf, so they're paid. The Integrations page now explains which is which, and why. Either way, an HTTP step and a secret still reach any API on any plan.
  • Slack setup that leads somewhere. Creating the app from our manifest dropped you on a page showing four credentials, none of which we use — and the instructions never said which page the real one was on. Now they do.
  • Help in the editor. A help button on the workflow canvas, explaining every control, every step type, and how to build a workflow from your own terminal — your workflows are just YAML files on disk, so you can point Claude Code or Codex at the folder and ask.
  • Edit with AI can be stopped. Closing the dialog mid-run used to leave the agent running; it would finish and rewrite your workflow anyway. Now it asks, and stopping actually stops it.
0.4.0

See your whole workspace, and what it's doing right now

The biggest release yet. Destaris now shows you the shape of what you've built — and what it's doing while you watch.

  • The Map. A new landing view: every workflow as a node, clustered into its folders, wired together by which workflow triggers which. Click one to open it. It also catches broken links — a workflow that calls one you've since renamed or deleted now shows up as a dashed "not found" node, instead of failing silently at 3am.
  • See what's running. A workflow with a run in flight spins in the sidebar — including workflows triggered by other workflows, which were previously invisible. Open one and the canvas animates live through its steps, whether you started the run or a schedule did.
  • Overview is now Logs. It was always a log of runs; now it says so.
  • Describe your workflows. Give a workflow a plain-English description of what it does. It shows on hover in the sidebar and above the canvas — because poll-sentry tells you what a workflow is, not what it does.
  • Everything in the GUI. A settings panel for the workflow itself: display name, description, and the folder it lives in — no more hand-editing YAML to move something. Steps also gain retry and error-handling controls.
  • Manage your workspaces. The workspace menu now offers config, integrations and removal. Removing a workspace only removes it from Destaris — your folder and files stay exactly where they are, and deleting Destaris's own files is a separate, deliberate opt-in.
  • A real tour. "Take a tour" now walks you through the actual app, pointing at the sidebar, the canvas and the tabs, rather than opening a help page.
  • Run, disable or delete a workflow from a right-click in the sidebar.
  • Fixes. Branch labels on the canvas are legible again; deleting a workflow updates the sidebar immediately.
0.3.1

Usage insight, tidier settings, and menu-bar polish

Follow-ups to 0.3.0 based on early feedback.

  • AI usage on the dashboard. A box showing your Claude session (5-hour) and weekly rate-limit windows — how much you've used and when each resets.
  • Settings, split in two. The workspace cog holds Secrets & Variables; a new gear by the version opens App settings (updates, default AI harness, notifications). Less to hunt through.
  • Check for updates. A button in App settings to check on demand, alongside the automatic-update toggle.
  • Menu-bar polish. The tray icon now matches the height of the other status icons, and its System on/off toggle stays in sync with the dashboard.
  • Smaller fixes: clicking a workflow from Settings opens it directly (no Back first), and the dashboard drops the Machines box.

Update from inside the app, or grab the latest from the download page.

0.3.0

A cleaner desktop app — workspaces, settings, and auto-updates

A big update to the macOS app, focused on getting around faster and staying up to date.

  • Apple Silicon and Intel. The app now ships a build for both — pick yours on the download page.
  • Redesigned workspace. Switch workspaces from a dropdown in the sidebar, the workflows list now stays put while you edit, and ⌘N starts a new workflow from anywhere.
  • Settings. Choose your default AI CLI (Claude, Codex, Rovo, or Gemini), and toggle automatic updates and run notifications.
  • System switch in the menu bar. Pause or resume every workflow from the tray icon.
  • In-app updates. When a new version downloads, you'll see a banner — restart to update in one click.
  • Edit with AI shows its work. The dialog now streams what the agent is doing as it rewrites your workflow.
  • Plus plenty of polish: the Problems list clears itself after a successful run, tooltips across the app, and assorted fixes.

Update from inside the app, or grab the latest from the download page.

Website

The site and docs are live

We put up destaris.ai and a full set of docs.

  • A new home page that shows the real workflow canvas, with a Visual ↔ YAML toggle.
  • Documentation covering the core concepts, building workflows, and a full node reference for every step type.
  • A download page — the macOS app is coming soon.

Building in the open from here. Watch this page for what ships next.

Preview

Preview build in progress

The desktop app is taking shape — deterministic-first, AI opt-in, running locally.

  • The visual canvas: triggers, deterministic steps, AI agents, and outputs, with colour-coded node categories.
  • The portable YAML format that every workflow compiles to.
  • A built-in dedupe cache so polling workflows only act on what's new.
  • Local execution as your own AI CLI — no keys custodied, no runs metered.

Notarized macOS builds are next.