github flet-dev/flet v0.86.1

4 hours ago

Improvements

  • flet-mcp's get_api tool now covers top-level callables — the app entry point (run), reactive hooks (use_state, use_ref, use_effect, …), and decorators (component, memo, observable) — which previously returned not found because only classes were indexed. A new functions bucket in the API builder extracts each package's re-exported public callables and renders them with a signature: line. get_api also resolves enum member lookups inline: get_api("Colors", query="RED") now returns the matching members instead of erroring with a redirect to search_enum_members. Both changes remove wasted agent round-trips observed in production usage by @FeodorFitsner.

Bug fixes

  • Fix flet build windows failing on non-UTF-8 system locales (e.g. Simplified-Chinese Windows, code page 936/GBK) with warning C4819 escalated to error C2220 while compiling a plugin's Windows sources. A non-ASCII character in a plugin source (e.g. an em dash in a comment) couldn't be decoded under the system code page, and the build template's /WX (warnings-as-errors) turned it fatal. The Windows build template now compiles all targets with /utf-8, so every plugin — including third-party ones flet doesn't control (e.g. connectivity_plus) — reads its sources as UTF-8 regardless of the build machine's code page. Also bumps serious_python to 4.3.3, which removes the character from its own plugin at the source (#6686) by @FeodorFitsner.
  • Fix the cryptic shutil.ReadError: ... is not a zip file failure in web apps when the app package download fails. The Pyodide worker piped the pyfetch(app_package_url) response straight into unpack_archive() without a status check, so any non-2xx response (transient server 500, expired auth 401, deleted app 404) wrote the JSON/HTML error body to a temp file and crashed while unpacking it. The worker now checks response.ok and raises a readable Failed to download app package: HTTP <status> <url> — <body> error, including the first 200 chars of the error body. Applied to both the Flet web client and the flet build template (#6680) by @FeodorFitsner.
  • Remove unused BasePage return type and import from BaseControl and ControlEvent (#6606) by @Iaw4tch.
  • Fix GestureDetector.allowed_devices crashing with type 'List<dynamic>' is not a subtype of type 'List<String?>?' and preventing the control from rendering. Property values are deserialized from JSON as List<dynamic>, but the value was read via get<List<String?>>(...), whose reified cast fails because a List<dynamic> is not a List<String?>. It's now read as List<dynamic> and each entry is converted to a string before parsing, restoring supportedDevices filtering for Flutter's GestureDetector (#6684) by @TURBODRIVER.

New Contributors

Full Changelog: v0.86.0...v0.86.1

Don't miss a new flet release

NewReleases is sending notifications on new releases.