Published

Announcing Flower 1.33

Share blogpost

The Flower team is excited to announce the release of Flower 1.33 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, Chong Shen Ng, Daniel J. Beutel, Daniel Nata Nugraha, Dimitris Stripelis, Heng Pan, Javier, Micah Sheller, Mohammad Naseri, Patrick Foley, Stephane Moroso, Taner Topal

What's new?

  • Chat with Flower Agent from your terminal (experimental) (#7691, #7695, #7721, #7723, #7729, #7730, #7731, #7733, #7739)

    Run flwr chat to start an interactive Flower Agent session on SuperGrid. Responses stream into the terminal, Ctrl+C stops the current response, slash commands are autocompleted, and reasoning and web-search activity can be expanded when needed. /new starts a new run series. Run series group related runs for tracking; they do not automatically provide conversation history to the model. Flower Agent is experimental and requires a SuperGrid account with access to Flower Agent.

  • Build AgentApps with automations and connectors (experimental) (#7540, #7552, #7555, #7558, #7565, #7567, #7571, #7573, #7587, #7591, #7597, #7598, #7608, #7610, #7614, #7621, #7623, #7664, #7702, #7704)

    AgentApp developers can give models runtime-provided connector tools without embedding connector implementations or provider credentials in their apps. OAuth connections and credentials are scoped to each run. Persisted automations can schedule one-time or recurring AgentApp runs and can be started, listed, and stopped through the Control API.

  • Track task usage of AgentApp (#7517, #7521, #7523, #7537, #7640)

    Agent runs now record fine-grained usage per task, improving the accuracy of usage reporting for individual runs.

  • Learn how to build and run Flower Agent (experimental) (#7699, #7705, #7707, #7711, #7724, #7727)

    New Flower Agent documentation guides you through chatting with the built-in AgentApp, building your own AgentApp, running it locally or on SuperGrid, and adding connector tool calls. Flower Agent APIs are experimental and likely to change in incompatible ways in future releases.

  • Add experimental HTTP Control API support to SuperLink (#7453, #7480, #7495, #7497, #7499, #7501, #7502, #7539, #7542, #7544, #7556, #7557, #7559, #7561, #7576, #7577, #7578, #7579, #7583, #7596, #7601, #7617, #7624, #7658, #7659, #7660, #7663, #7672, #7673, #7675, #7682, #7684, #7697, #7759)

    SuperLink now supports an HTTP Control API alongside the existing gRPC APIs through --enable-http-api, with --disable-grpc-api enabling HTTP-only operation. The new path provides health checks and consistent authentication, licensing, error-handling, event-log, and extension integration. The HTTP API remains experimental in v1.33.0.

  • Get clearer, consistent API errors (#7508, #7524, #7525, #7526, #7527, #7532, #7546, #7547, #7548, #7549, #7594, #7604, #7674)

    Flower CLI now shows stable API error codes alongside clearer messages. gRPC and HTTP clients receive equivalent status information, making failures easier to understand, handle programmatically, and troubleshoot.

  • Detect failed transfers earlier and improve high-availability reliability (#7365, #7550, #7564, #7568, #7582, #7602, #7606, #7607, #7612, #7613, #7615, #7616, #7625, #7644, #7692)

    Large object transfers now use push sessions, enabling Flower to detect failed or expired uploads sooner, remove incomplete transfer state with the associated run, and shut down more reliably. Idempotent message storage and serialized SQL object-store mutations also make concurrent and high-availability deployments safer.

  • Add custom storage support to Kubernetes TaskExecutor pods (#7531)

    KubernetesExecutor deployments can now attach custom volumes and volume mounts to TaskExecutor pods, making it easier to provide datasets, caches, or other runtime files while protecting Flower's reserved credential mounts.

  • Migrate SuperLink state access to SQLAlchemy ORM (#7688, #7703, #7706, #7710, #7713, #7714, #7720, #7722, #7725, #7728, #7732, #7734, #7735, #7736, #7737, #7743, #7744, #7747, #7750, #7751, #7760)

    SuperLink state access now uses SQLAlchemy ORM with sessions scoped to each database. This reduces transaction and concurrency errors across FABs, run series, connectors, automations, tasks, events, and object transfers, including deployments that access more than one database.

  • General improvements (#7489, #7500, #7512, #7515, #7518, #7530, #7533, #7534, #7536, #7541, #7553, #7563, #7569, #7572, #7589, #7593, #7595, #7611, #7619, #7626, #7629, #7639, #7643, #7647, #7648, #7650, #7655, #7656, #7665, #7667, #7668, #7677, #7679, #7681, #7685, #7687, #7689, #7700, #7701, #7712, #7715, #7716, #7717, #7718, #7719, #7726)

    As always, many parts of the Flower framework and quality infrastructure were improved and updated.

Incompatible changes

  • Standardize federation IDs in JSON output and database schema (#7519, #7529)

    Federation IDs are now consistently represented as @<account-name>/<federation-name>. Update integrations using flwr ls --json to read federation-id instead of federation, and integrations using flwr federation ls --json to read id instead of name. The corresponding database columns are migrated from federation to federation_id.

  • Remove the legacy TensorBoard helper (#7554)

    flwr.server.utils.tensorboard has been removed. Applications importing this deprecated utility must replace it with their own strategy metrics or TensorBoard integration before upgrading.

  • Remove the experimental REST Fleet transport (#7520, #7560, #7580)

    The experimental REST Fleet API, client transport, and rest installation extra have been removed. Replace REST transport configuration with the default grpc-rere transport or grpc-adapter, and install flwr without the rest extra.

Share Blogpost