Changelog

What's new in Wurk.Flow.

Every release, newest first. One version number covers the desktop app and the web studio.

v26.10.0

Latest

The Fall Update

Your AI coding agent can now open the model you are working on and change it, the DBML Workspace is free for everyone, and the canvas can draw its relationship lines the way you like them.

๐Ÿค– Your AI agent can read and edit the model (MCP server โ€” Pro, desktop)

  • Claude Code, Cursor, Claude Desktop, or any MCP client can now talk to the model that is open in Wurk.Flow. Eleven tools: project summary, table listing and detail, column search, DBML and DDL export, glossary, lineage and impact analysis, and DBML-based edits.
  • Writes go through DBML, and they are undoable. The agent plans first (plan_dbml shows new / updated / unchanged / missing), then applies. Every apply is one undo step for the person at the keyboard, a toast announces it, and nothing is ever removed unless the agent explicitly asks.
  • Nothing leaves your machine. The server is off until you turn it on, listens on this computer only, needs a token that exists only on this computer, and refuses browser pages outright. The Pro check runs on every call.
  • Setup is a paste. Settings: MCP Server (command palette) holds the toggle, the port, the token, and ready-to-paste configs for Claude Code, Cursor, and Claude Desktop. A bundled shim serves clients that only launch stdio servers โ€” no extra install.

๐Ÿ†“ The DBML Workspace is free for everyone

  • The two-way DBML pane โ€” your canvas as live text, with a plan preview and Apply โ€” is now on the Community tier, joining DBML import and export. If DBML is how you think, the whole surface is free.
  • Pro keeps everything else it had: lineage, mapping, glossary, live database import, live SQL engines, all 13 dialects, migrations, source control, snapshots, and the documentation exports.

๐ŸŽจ Straight lines, if you want them

  • Appearance โ†’ Relationship lines: Curved (the default), Elbow (orthogonal, the classic ER look), or Straight. Saved per machine like your theme, applies to the schema canvas.

๐Ÿงน Small things

  • The native menu no longer labels Export DBML and DBML Workspace as Pro.
v26.9.0

Bring any model

A custom OpenAI-compatible AI provider on the desktop app, and a fix for models that refuse the temperature parameter.

๐Ÿ”Œ Custom AI provider (desktop)

  • Any OpenAI-compatible endpoint. A new "Custom (OpenAI-compatible)" option in AI settings takes any /v1 base URL: OpenRouter, Together, Fireworks, DeepSeek, LM Studio, vLLM, or your own gateway.
  • The key is optional. Local endpoints need none. Requests go straight from your machine to your endpoint โ€” the same bring-your-own-key posture as every other provider, now for effectively any model.

๐Ÿฉน Fixed

  • Temperature rejections. Some models refuse the temperature parameter outright (Anthropic requests with extended thinking, OpenAI reasoning models), and the first AI action failed with a raw provider error. Wurk.Flow now strips the parameter and retries once when a provider rejects it โ€” for every current and future provider, with no per-model compatibility list to go stale.
v26.8.0

Out of Beta, Into the Browser

The web studio graduates from beta and becomes a first-class way to run Wurk.Flow, the desktop app learns to survive a crash with your unsaved work intact, and the SQL Workspace opens its door to everyone. Underneath the headlines, this release is about trust.

๐ŸŒ The web studio is out of beta

  • app.wurk.haus is now a first-class way to run Wurk.Flow โ€” in your browser, installable as an app, no download required.
  • Bring-your-own-key AI, truly private. AI requests go straight from your browser to your provider โ€” nothing passes through wurk.haus servers.
  • Trusted browser autosave with multi-tab safety and a one-generation restore backup, so a stray refresh doesn't cost you the session.
  • When the browser can't start the WASM SQL sandbox, the studio degrades gracefully instead of breaking โ€” and the Community table-cap notice now offers an Upgrade path right where you hit it.

๐Ÿ’พ Crash recovery on the desktop

  • Your work is snapshotted every few seconds โ€” including projects you have never saved. If Wurk.Flow is killed or the machine loses power, the next launch offers that work back.
  • Declining the recovery keeps a copy for a later visit rather than destroying it.

๐Ÿ†“ The SQL Workspace is open to everyone

  • Community now includes one query tab against the built-in DuckDB sandbox, so you can query the schema you're designing without a licence.
  • Unlimited tabs and the live/cloud engines (MotherDuck, saved database connections) remain Pro.
  • Dates in sandbox results now read as dates โ€” not as numbers like 1785196800000 โ€” in the results grid, CSV exports, and chart labels alike.

๐Ÿ—ฃ๏ธ Software that tells you what's happening

  • Database errors now say what to do. connect EHOSTUNREACH 10.0.0.4:5432 became "No response from db.internal:5432. A firewall or VPN is the usual cause โ€” confirm the host is reachable and the port is open." Certificate, authentication, missing-database, and SQLite-file failures all name your connection and a next step.
  • A running query looks like one โ€” a spinner, the engine it's waiting on, and a live elapsed time, instead of "Awaiting query execution" while the query was running.
  • Bulk actions ask first and report after. Enforce Naming, Inject Timestamps, Inject Soft Deletes, and Generate Missing Primary Keys now preview exactly what they'll change, warn when a rename would collapse two names into one, and report what they did โ€” with an Undo button.
  • Failures you need to see now stay on screen. Save, autosave, and recovery failures no longer vanish after a few seconds, and they clear themselves once a save succeeds. A dropped Co-Op session and a mid-session licence change announce themselves instead of failing quietly.
  • Auto-Link reports what it linked (or why it found nothing), slow exports show progress instead of appearing frozen, and undo/redo explain themselves at the ends of the history instead of doing nothing.

๐Ÿ›ก๏ธ Your work is safer

  • Quitting with "Save" no longer quits without saving. A watchdog force-closed the window while the save was still in the operating system's hands โ€” lingering in the Save dialog could lose the very work you'd just asked to keep.
  • Git actions no longer overwrite the branch you just checked out. Switching branches, pulling, and reverting used to leave the old project armed in memory, where autosave would write it back over your fresh checkout moments later.
  • Joining a Co-Op session no longer overwrites your own file with the host's project, and a failed join no longer clears your canvas.
  • Two windows can no longer fight over one .dsm file โ€” opening a project another window has open warns before anything is touched.
  • Opening a non-Wurk.Flow .json file no longer adopts it and rewrites it as a project, and Ctrl+Z from a tab the history stack doesn't cover no longer silently rewinds the schema canvas.

โš–๏ธ Tiers that tell the truth

  • One source of truth for tiers. Feature gates, command-palette badges, the licence dialog, and the manual are all driven by a single registry, so they can no longer disagree โ€” Co-Op was badged Team while the code checked Pro, which made a Pro user's click do nothing at all.
  • The licence dialog explains itself. Being refused a feature now tells you which feature and which tier, with a link to the plans.
  • Fairer Community table-cap accounting. Custom types (enums, domains, sequences, UDTs) no longer count toward the cap โ€” they never should have โ€” and dropping a SQLite, DuckDB, or nested-JSON file on the canvas now imports in full. Convert to Data Vault now respects the cap like any other table-creating action.
  • The manual, the onboarding tour, and the pricing reference were corrected against what actually ships.
v26.7.1

DBML, First-Class Citizen

This release makes DBML โ€” the code-first schema language you know from dbdiagram.io โ€” a first-class way to work in Wurk.Flow. Write your schema as code, keep your diagram, and never choose between the two again.

๐Ÿ–ฅ๏ธ The DBML Workspace (Pro)

  • Your canvas as live code. A new right-side pane on the Schema tab renders the entire canvas as DBML. When the canvas changes โ€” yours or a Co-Op teammate's โ€” the text follows live.
  • Explicit Apply, never surprises. Edit the text and a plan strip previews exactly what will happen โ€” new / updated / unchanged / canvas-only โ€” before you click Apply to canvas. Typed Ref: lines become real relationships. Applies are undoable, and the Workspace never deletes anything.
  • You own your text. While you're editing, canvas changes never overwrite your work โ€” a "canvas changed" banner offers a reload instead.
  • Open it from the new DBML pill in the status bar, the View menu, or Ctrl/Cmd+Shift+D.

๐Ÿ†“ DBML import is now free โ€” everywhere

  • The import dialog is free for everyone: paste, drag a .dbml file onto the canvas, use File โ†’ Import DBML (Ctrl/Cmd+D), or just double-click a .dbml file โ€” Wurk.Flow registers as a DBML editor on install.
  • The dialog is now a real code editor: syntax highlighting, line numbers, and live squiggles positioned by the same parser that runs the import. Click a warning to jump to its line.
  • Merge, don't duplicate. Re-importing matches tables against your canvas and patches them in place โ€” positions, relationships, and metadata survive. Re-importing your own export is a clean no-op. Nothing is removed without an explicit checkbox.

๐Ÿ“ค DBML export with your layout inside (Pro)

  • Export .dbml and Copy as DBML from the DDL panel or File menu. Output is deterministic and git-diff-friendly.
  • Canvas layout โ€” positions, sizes, colors, subject areas โ€” travels in the file itself. A Wurk.Flow .dbml rebuilds your entire diagram, layout included. No other DBML file does that.
  • Anything DBML can't express (views, custom types, procedures) is listed in a trailing comment โ€” never silently dropped. Every export is verified against the official DBML reference parser.

๐Ÿ”ง Import fidelity, rebuilt

  • The DBML parser was rebuilt from the ground up: relationship ON DELETE / ON UPDATE actions, schemas, header colors, aliases, composite keys, indexes, enums, table groups, sticky notes, and multi-line notes all import into their real homes โ€” and generated DDL now starts with the CREATE SCHEMA statements qualified tables need.
  • Imported relationships render crow's-feet like hand-drawn ones (older projects upgrade automatically on open).
  • Imports now appear in Migration-mode diffs and are undoable โ€” even as the very first action after launch (we also fixed undo silently doing nothing within half a second of any change).

โšก The canvas got fast โ€” properly fast

  • We found and fixed a reactive amplification bug that made every drag frame serialize your whole schema behind the scenes โ€” big imports could bog down even high-end machines. Dragging, clicking, and importing are now dramatically smoother, and a machine-independent performance budget in CI makes sure this class of slowdown can never quietly return.
  • Imported tables no longer overlap each other (rows now space by the tallest table), duplicate Ref declarations merge cleanly, and re-importing a file skips tables already on your canvas โ€” while still wiring their relationships to the existing ones.

๐Ÿ›ก๏ธ Your work is safer

  • The unsaved-changes prompt now actually protects you. A long-standing bug let File โ†’ New and File โ†’ Open proceed before you answered "Discard changes?" โ€” Cancel did nothing. Both now genuinely wait, and a new automated test matrix keeps it that way forever.
  • Opening a corrupt or newer-version project can no longer damage the file โ€” previously it silently became the autosave target and was overwritten seconds later. Unreadable files are now left completely untouched.
  • Delete on the Mapping tab can no longer remove a table selected back on the Schema tab; Ctrl+Z no longer rewinds the schema canvas from unrelated tabs; choosing "Save" while quitting can no longer quit unsaved if you cancel the save dialog; autosave retries after a failure instead of silently giving up; and saved queries + version snapshots now correctly count as unsaved changes.

โœจ Also in this update (the 26.7.0 line)

  • Dark Glass โ€” the redesigned default theme, plus full WCAG AA contrast in all three themes and keyboard/screen-reader support for the property panels.
  • Custom types โ€” first-class Enum, Domain, Sequence, and Composite (UDT) nodes with per-dialect DDL.
  • SQL workspace โ€” result charts (bar/line/pie) and multi-result-set script runs.
  • Project audit log โ€” who changed what, across every surface, synced in Co-Op sessions.
  • Bulk AI glossary generation, expanded Co-Op (lineage + mapping canvases, glossary), in-app auto-update, and hardened AI-key storage (encrypted, main-process-only).

Releases before 26.7.1 predate this changelog.