v0.39.4
July 11, 2026
A fixes release, with one structural improvement: the historical cost of an activity no longer changes retroactively if you later edit its configuration. It also hardens the n8n integrations (production send, import, execution tracking) and PDF printing (never again a silently incomplete document). Includes a database migration (a cost snapshot on activities).
-
Integration
Safer, more controlled n8n integrations
The **"confirm production send" checkbox now resets on every change** to the payload or mode: you can no longer confirm a harmless payload and then send a different one to a production workflow. **Importing from n8n is now two-step**: it first **analyzes** (creating nothing) and shows the candidate connector — URL, method, inferred webhook node — then you **confirm and create**; if the workflow has **multiple Webhook nodes you now choose which one** to import instead of picking the first. And the **n8n executions panel** in the item detail now **refreshes on its own** while a run is in progress and **realigns** after a "Retry" or a task completion, even when the item’s state doesn’t change.
-
Improvement
Costs you can trust over time
The cost of a **completed activity is now frozen**: it is captured when the activity instance is created, so later editing the cost of the activity template **no longer retroactively changes** the historical costs of maps and analytics *(database migration + alignment of existing data)*. Incomplete cost setups no longer slip through: an invalid cost type is discarded, and a "€/minute" activity **with no minutes** is now correctly flagged as **"no estimate"** instead of silently showing zero. And the copyable **What-if** summary now uses the **same number format** (thousands separator) as the on-screen panel.
-
Improvement
PDF printing without surprises
Never again a **silently partial PDF**: if a section (a sub-flow, the analytics or the automation) **fails to load**, the print page now shows a **warning listing the missing sections** and a "Retry" button, and asks for an **explicit confirmation** before printing an incomplete document.
-
Improvement
Designer: no lost routes
Shared exception routes no longer cancel each other out: if a timeout and a WIP limit point to the **same state** (sharing one transition), changing or removing one **no longer deletes** the transition still used by the other. And Admin state forcing is more traceable: when an Admin forces a transition bypassing a disabled gate, the **history now records it explicitly**.
-
Design
Interface and small fixes
The **"Child data" field** in the "Child flow" task can now be **cleared** and shows an "Invalid JSON" error instead of silently ignoring the change. The help **"?"** pop-up now stays open long enough to click **"Open the guide"** (again a real link). **State names are readable in dark mode** too (badges and the transition picker). No more **text spilling out**: the variable list in the narrow panel and the flow code on cards now stay within their borders. The **"AI map analysis" panel** is now **movable**, organized into **sections**, with **copy to clipboard** in its header. And **demo data no longer has future dates**.