The Flower team is excited to announce the release of Flower 1.35 stable, packed with new updates!
Flower is a friendly framework for collaborative AI and data science. It makes novel approaches such as federated learning, federated evaluation, federated analytics, and fleet learning accessible to a wide audience of researchers and engineers.
Thanks to our contributors
We would like to give our special thanks to all the contributors who made the new version of Flower possible (in git shortlog order):
Charles Beauville, Daniel J. Beutel, Daniel Nata Nugraha, Dimitris Stripelis, Heng Pan, Javier, Mohammad Naseri, Stephane Moroso, Taner Topal
What's new?
-
Run the Runtime API over HTTP (#7907, #7913, #7923, #7924, #7954, #7956, #7959, #7960, #7963)
The Runtime API now uses HTTP for communication between SuperLink/SuperNode and SuperExec or flwr task processes.
-
Use Open Responses from AgentApps (experimental) (#7971, #7976, #7977, #7979, #7983, #7985)
AgentApps can now call the Open Responses-compatible /v1/runtime/responses endpoint through the OpenAI SDK, with both JSON and SSE streaming responses. Source-task filtering and synchronized context keep parallel calls isolated, while agent.events.emit(...) lets apps selectively republish model events to frontends. Configured Runtime root certificates are exposed through SSL_CERT_FILE.
-
Continue conversations across federations in flwr chat (experimental) (#7836, #7933, #7964, #7965, #7972, #7992)
flwr chat can now list prior conversations with /history, resume a selected run series, render responses as Markdown, and switch federations with /federation. New conversations use the personal federation by default.
-
Manage Flower Apps in federations (experimental) (#7932, #7948, #7951, #7962, #7987)
Federations can now persist apps and add or remove Hub apps through the Control API.
-
Create your first AgentApp with one command (experimental) (#7947)
Run flwr new @flwrlabs/agent to scaffold a ready-to-customize AgentApp that sends user input to a configured model and returns its response.
-
Learn how to build, connect, and automate AgentApps (experimental) (#7903, #7906, #7925, #7927)
Flower Agent documentation now guides you through AgentApp foundations and runtime concepts, building a collaborative research app with web_search and web_fetch, connecting Slack, Notion, GitHub, and Attio, and configuring one-time or recurring automations.
-
Track privacy loss in fixed-clipping strategies (research preview) (#7934, #7958)
Fixed-clipping strategies can now use a PrivacyAccountant to track cumulative ε and δ for Gaussian releases and prevent the next release from exceeding max_epsilon. Accounting currently requires no-amplification sampling and uniform FedAvg aggregation weights.
-
Catch invalid Flower Apps when building FABs (#7950, #7969)
flwr build, local flwr run, and flwr app publish now provide actionable errors for paths that exceed the FAB depth limit and exclude .venv contents from that check. FAB construction also validates the complete Flower App configuration, including for direct callers such as Hub publishing.
-
Improve Framework release reliability (#7935, #7940, #7952)
Framework release finalization now promotes the intended OCI indexes to versioned and latest Docker tags and verifies existing release refs before reusing them. Updated documentation explains the automated preparation and publication process.
-
General improvements (#7882, #7890, #7937, #7938, #7939, #7942, #7943, #7949, #7957, #7961, #7968, #7970, #7981, #7982, #7989, #7995)
As always, many parts of the Flower framework and quality infrastructure were improved and updated.
Incompatible changes
-
Update Runtime API addresses and CLI options (#7936, #7955)
Replace --serverappio-api-address on SuperLink and --clientappio-api-address on SuperNode with separate --host and --port options. The default Runtime API addresses change from 0.0.0.0:9091 to 127.0.0.1:8000 on SuperLink and from 0.0.0.0:9094 to 127.0.0.1:9094 on SuperNode. Set --host 0.0.0.0 when the Runtime API must remain reachable externally.
