Releases
Alle veröffentlichten Flow-Releases mit ihren Highlights, Migrationshinweisen und den enthaltenen Fixes.1.1.0 – 1.1.0Minor
Upgrade across Flow versions with one command
Highlights
npx @mittwald/flow-codemods@latest upgradebumps every Flow dependency, installs, and runs the codemods for the range it crossed.- The new
@mittwald/flow-codemodspackage carries the migration catalogue thatMIGRATION.mdis generated from — 23 entries, each carrying a codemod where the change can be applied mechanically. flow-codemods list <revision>shows what a target version would touch before you commit to it.Ratingtakes a segment count (maxValue), single-segment filling (fill="single"), and individualRatingSegmentchildren with their own icons and labels.@mittwald/flow-react-componentsnow shipsUSAGE.mdand a JSON component index, so a coding agent can answer component questions without the docs site.
The upgrade CLI
Upgrading Flow used to mean reading MIGRATION.md, deciding which entries
applied to your jump, and running codemods one at a time. The new
@mittwald/flow-codemods package does that for you.
upgrade detects your package manager, refuses to run on a dirty working tree
(--allow-dirty overrides), and reports every file it declined. --dry writes
nothing, --print shows the transformed output, and --json makes list
machine-readable.
The catalogue is the single source for both the CLI and MIGRATION.md: an entry
describes what changed and how to migrate, and carries a codemod when the change
can be decided mechanically. Entries without one still tell you what to do by
hand — for those, the prose is the migration.
Rating: segment count, single fill, individual segments
Rating gained maxValue (default 5) for the number of segments, and
fill="single" to fill only the selected segment instead of every segment up to
it.
For a scale whose segments are not interchangeable, pass RatingSegment
children — they define how many segments there are (maxValue no longer
applies) and each one takes its own icons and accessible label.
Both the component and RatingSegment work in mStudio extensions.

Documentation a coding agent can read
@mittwald/flow-react-components now ships its own consumer guide, and the docs
site is published in machine-readable form.
USAGE.md, shipped inside the package: how to build an application with Flow — component selection, layout and spacing, what is safe to depend on, and the mistakes that come up most. Available offline, which is what makes it usable from an agent's tool loop.@mittwald/flow-react-components/component-index— a JSON index of every public component with its lifecycle status and props.- The docs site at https://flow.mittwald.de serves
/llms.txt,/llms.json,/llms-full.txt, and every page as Markdown at/raw/<path>.md.
Point your agent at USAGE.md and the component index; it stops guessing
component names and props.
1.0.0 – 1.0.0Major
Semantic Versioning is a promise now, not an intention
Highlights
1.0.0carries no breaking change over0.2.0-alpha.1058. Coming from the last alpha, the upgrade is a version bump and nothing else.- Semantic Versioning is binding from here on: an incompatible change to the runtime public API only ever ships in a new major (ADR 0005, RFC #2711).
- Deprecate, don't break — an API that is going away stays functional and warns at runtime first. That warning is your lead time before the next major.
- Every
@mittwald/flow-*package keeps sharing one version, so the promise reads identically for all of them,@mittwald/flow-remote-react-componentsincluded. - Deliberately not covered, so the design system can keep moving: TypeScript types, CSS class names, design tokens, and the internal DOM structure.
- New docs page under Get Started walks through what the release means per audience and how to catch up from an older alpha.
Deprecations
Nothing is newly deprecated in 1.0.0. What changed is the removal date: every path deprecated during the alpha keeps working and now disappears at 2.0.0, not before.
Align→Combine(#2871)SegmentedControl/Segment→Tabs(switching content) orRadioGroup(setting a value) (#2903) — not mechanical, the replacement is a decision per usage- The global
flagsobject →ComponentDefaultsProvider, which also works per subtree (#2796) Button/SubmitButton:color="accent"→color="success"(#2874)Action:action→onAction
What the version number now guarantees
An incompatible change to any of these only appears in a new major: the runtime public API of public.ts (which components and exports exist, which props they accept, and the documented behaviour of documented functions), the props of the components in @mittwald/flow-remote-react-components, published icons, and the versioned remote protocol.
Node and React are runtime requirements with explicit rules. The Node floor is the actively supported LTS — currently node >=24 — and dropping a version still inside its LTS window is breaking, while dropping an already-EOL one may ship in a minor. Widening the accepted React range is backwards compatible; raising the minimum is breaking.
TypeScript types stay best-effort and are not covered, so a tsc error can in theory appear in a patch. If that would be expensive for your project, pin exact versions instead of ^ ranges. A deliberate type break still ships a migration note.
One override exists: a component's lifecycle status. A Beta component is exempt from the breaking-change promise while its API is still moving; Stable is the default and fully bound; Deprecated stays covered until it is removed in a major.
What it means for mStudio extensions
The props of the components in @mittwald/flow-remote-react-components are the contract with extension developers and carry the same promise as the React components. The remote protocol is versioned and negotiated when the connection is established, so an extension built against an older Flow keeps running when the mStudio host updates.
@mittwald/ext-bridge shares the version but has its own migration guide and a stricter Node rule: for that package, any raise of the Node floor is a breaking change, regardless of EOL, and its floor may be more conservative than the rest. Since the alpha it requires node >=24 and narrows its React peer range to ^19.2.0. Declared context parameters are typed and optional config values are never null any more, so reading config.containerId no longer needs a runtime narrow (#2889).
Migrations
From 0.2.0-alpha.1058 there is nothing to do. Coming from an older alpha, the work sits between the alphas, not in 1.0.0. Every change below has a before/after entry in the migration guide — @mittwald/flow-react-components (which also covers the remote package) and @mittwald/ext-bridge. The oldest 0.2.0-alpha entry is the jump to 0.2.0-alpha.646, so from anything around 0.2.0-alpha.600 this list is complete.
Renames — one command does all four. Action's action → onAction (alpha.646), color="primary" → color="default" on Breadcrumb, HeaderNavigation, Heading, IllustratedMessage and Link (alpha.846), Button's color="accent" → color="success" (alpha.1046), and Align → Combine (alpha.1047):
Updated after the fact. This originally printed a
jscodeshiftinvocation against a raw GitHub URL; that path is retired and the URL 404s. The@mittwald/flow-codemodsCLI that replaces it ships in1.1.0— newer than this release, hence@latest. It works out the range you are crossing and runs every migration in it, so it still covers everything listed here.
It bumps your Flow dependencies, installs, and rewrites your sources in place — including the subpath-import move that used to be a separate step when coming from 0.1.0. It refuses to run on a dirty working tree, so commit first and review the diff afterwards. None of it is a prerequisite: the old paths still work in 1.x. It does not touch CSS class names or token variables — the accent → success and Align → Combine renames hit those too, so adjust them by hand if you use @mittwald/flow-stylesheet or the token CSS variables directly.
By hand.
- Removed escape hatches. The
renderprop is gone from TableCell (alpha.846) and Table (alpha.866) — compose the table from its parts.TableColumn.maxWidthis removed, andwidth/minWidtharenumber | stringwithoutnull(alpha.956). CodeBlock lost many props when the syntax-highlighting library was replaced (alpha.756). - Changed defaults. A Modal containing a dirty react-hook-form
Formasks for confirmation before closing (alpha.1005). AForminside a Modal resets after the modal closes;autoReset={false}opts out (alpha.694). - Reshaped APIs.
flags→ComponentDefaultsProvider(alpha.1005).MutedActionError→AbortActionError, with no alias for the old name (alpha.712). On AccentBox,colornow means foreground and the background moves tobackgroundColor(alpha.786).TooltipTrigger.delaytakes string literals only (alpha.1016). Themittwald-password-tools-jsentry exports a singleRuleinstead ofAsyncRule/SyncRule(alpha.802). On CartesianChart,emptyViewneeds a rendered element (alpha.676), a functiondataKeyneeds adataKeyLabel, and the data types areunknowninstead ofany—typedCartesianChartinfers them (alpha.780).OverlayController.addOnClose/addOnOpenreturn() => unknown(alpha.696). - Removed types.
RemoteButtonElementProps,ResetButtonPropsandSubmitButtonPropsare gone; useButtonProps(alpha.646).
Fixes
- 1.0.16 – components: stop shipping design-token build metadata to the browser (#7d3afde)
- 1.0.13 – Modal: keep the heading text next to its icon (#9ff2cae)
- 1.0.10 – ci: docs- and CI-only merges no longer publish through package.json or the lockfile (#09bda96)
- 1.0.10 – docs: stop the footer from overflowing on narrow screens (#3e3b9c1)
- 1.0.9 – ci: version-contract guard no longer reads a first publish as a tightening (#cc7b2ba)
- 1.0.9 – Form: stop a Modal's form submit from reaching the surrounding Form (#ee9b60a)
- 1.0.8 – FileField: open the file dialog inside a link row (#b77a14c)
- 1.0.7 – ci: merge driver no longer reverts release version bumps (#5624853)
- 1.0.7 – Table: will not render in remote (#22929f4)
- 1.0.6 – docs: hide deprecated values from the properties table (#eaa0349)
- 1.0.5 – docs: show full prop types in the properties table (#2c42ad5)
- 1.0.3 – ci: enable automatic review environments for other target branches too (#6102d2e)
- 1.0.3 – CodeBlock: balance the padding and unify the editor line colors (#6bf57c7)
- 1.0.3 – docs: remove 1.0.0 release reveal easter egg (#419e17f)
- 1.0.2 – Remote: serialization allows duplicate object references (#ac3ef26)
- 1.0.1 – Breadcrumb: fix cursor pointer for spans with role link (#d44d61c)
- 1.0.1 – ci: build after the version bump so bundles carry the published version (#c24c5ef)