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 chatto start an interactive Flower Agent session on SuperGrid. Responses stream into the terminal,Ctrl+Cstops the current response, slash commands are autocompleted, and reasoning and web-search activity can be expanded when needed./newstarts 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-apienabling 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 usingflwr ls --jsonto readfederation-idinstead offederation, and integrations usingflwr federation ls --jsonto readidinstead ofname. The corresponding database columns are migrated fromfederationtofederation_id. -
Remove the legacy TensorBoard helper (#7554)
flwr.server.utils.tensorboardhas 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
restinstallation extra have been removed. Replace REST transport configuration with the defaultgrpc-reretransport orgrpc-adapter, and installflwrwithout therestextra.