Skip to content
Boring Doc

Version Comparison Studio

Choose two real stable releases. Boring Doc lists every indexed change between them with its evidence, impact and migration instructions, and can fetch the verified source diff from GitHub.

Categories
Platform
Explain

2.5.3 → 2.8.1Oct 15, 2021 → Dec 16, 2021 · 2 releases in range

Changes in range
4
Breaking / removed
0
0 with migration guides
Deprecations
0
plan before they are removed
Official evidence
4
4 official changelog

What changed?

4 indexed changes across 1 versions: 4 bug fix.

Will this affect my application?

No high-impact items were indexed for this range. Review deprecations and platform-specific items for the platforms you ship to.

What action should I take?

Upgrade, run `flutter analyze` and your tests. No migration guides apply to this range.

How do I migrate safely?

Prefer stepping through stable series sequentially; each breaking-change page has a checklist, before/after code and the official guide. Verify with `flutter analyze`, `flutter test` and a profile-mode run on each target platform.

What this comparison covers
  • Release-note items are indexed for the most recent series only. For 2.8 this comparison shows official breaking-change guides and hotfix notes.
  • Release-note items are classified from PR titles (heuristic); breaking-change guides are classified from the official index.
  1. 2.8.0
    Dec 9, 2021
    0 changes
  2. 2.8.1
    Dec 16, 2021
    4 changes
Verified source diff1067 commits · 300 files · +7263 / −2879GitHub API truncated (250 commits / 300 files max)Full diff on GitHub

A source diff proves code changed; it does not by itself show that a public API is breaking. Use it to corroborate the announcements above.

dev/infra 273other 17tooling 10
Commits (250)
  • bb5cbdcEnable `depend_on_referenced_packages` lint (#91653)
  • 66dd2adAdd some more new lints (#91659)
  • 3b4c2c4Add owners for .ci.yaml (#91687)
  • bdeefecRoll Engine from ad33adfa6ba2 to 96831061087b (7 revisions) (#91688)
  • 1dbafdbMigrate protocol_discovery to null safety (#91267)
  • 261fcf1[codeowners] Remove *_builders.json ownership (#91691)
  • 98e66fdRoll Engine from 96831061087b to 07ec40742e22 (2 revisions) (#91692)
  • 6987c9fMigrate crash_reporting and github_template (#91516)
  • 4d25af3Roll Engine from 07ec40742e22 to f27fab4f4330 (2 revisions) (#91697)
  • 94ff520Refactored ListTileTheme: ListTileThemeData, ThemeData.listThemeData (#91449)
  • ee241ecAdd my name to authors (#90413)
  • 3f82cc4Roll Engine from f27fab4f4330 to adf8fa751589 (1 revision) (#91707)
  • b087ed6Roll Engine from adf8fa751589 to 6755b4884d7b (3 revisions) (#91712)
  • 28e22c0Roll Engine from 6755b4884d7b to 201e2542a61f (1 revision) (#91718)
  • 68f2143Enable Mac plugin_test_ios in prod (#91713)
  • 4d37cc6Pin android_sdk version. (#91724)
  • 25b3bb5Roll Engine from 201e2542a61f to 057983c49c6c (1 revision) (#91725)
  • 1a7d5eaRoll Engine from 057983c49c6c to 4b08a8c8cc16 (2 revisions) (#91727)
  • 92f2e38Roll Engine from 4b08a8c8cc16 to c7f301f16e15 (1 revision) (#91728)
  • 063534bRoll Engine from c7f301f16e15 to 6db4d60f7906 (1 revision) (#91730)
  • 2e97e3cRoll Engine from 6db4d60f7906 to da5bd058543f (1 revision) (#91734)
  • 5fd1d36Limit 10 second future modification-date in integration test to only where required for reloads (#91300)
  • e89a885Reland "Enable caching of CPU samples collected at application startup (#89600)" (#90611)
  • dc7fea8Revert "Reland "Enable caching of CPU samples collected at application startup (#89600)" (#90611)" (#91754)
  • e322012Indicate that only physical iOS devices are supported (#79350)
  • 01afd64Implemented getter to expose current url strategy for web plugins (#90708)
  • 3a2bc1cadded conductor_status widget (#91445)
  • f8f96a4Run "flutter update-packages --force-upgrade" to get latest DDS (#91736)
  • 38a0e44Roll Engine from da5bd058543f to b1a886d30084 (1 revision) (#91750)
  • 92dd9d2Roll Engine from b1a886d30084 to 8c9dc9427749 (1 revision) (#91761)
  • 4b1b651[fuchsia] - remove device-finder for device discovery (#91502)
  • 1bf621b[flutter_conductor] Refactor conductor core (#91694)
  • 3039e8cRoll Engine from 8c9dc9427749 to 2cdac43baf2a (2 revisions) (#91764)
  • abfcc84[CupertinoTabBar] Add an official interactive sample (#91763)
  • 1d9eddeAdd multidex flag and automatic multidex support (#90944)
  • 8654810[flutter_localizations] fix README links (#91479)
  • 158939aScrollbar shouldRepaint to respect the shape (#91506)
  • a9c31ecRevert "Add multidex flag and automatic multidex support (#90944)" (#91791)
  • ae19c8fRoll Engine from 2cdac43baf2a to c432592e048d (1 revision) (#91765)
  • a6f375aRelease Desktop UI Repo Info Widget (#91769)
  • b37e8f3Roll Plugins from c254963c1e2b to 6716d75c08cb (1 revision) (#91781)
  • 51b48f1Roll Engine from c432592e048d to 4a13531f8ca9 (9 revisions) (#91794)
  • c8a8c69Roll Plugins from 6716d75c08cb to 176cfb8083bc (1 revision) (#91796)
  • dc47979Roll Engine from 4a13531f8ca9 to ea7fa6a65f96 (1 revision) (#91799)
  • 240d209Revert "Refactored ListTileTheme: ListTileThemeData, ThemeData.listThemeData (#91449)" (#91811)
  • b9d0c73Roll Engine from ea7fa6a65f96 to 5bc9385e015a (1 revision) (#91817)
  • 0bf2c9bAdd local engine flag support to the SkSL caching performance benchmark scripts (#91773)
  • 7a7d9a2Roll Engine from 5bc9385e015a to 21f6725f2cf3 (2 revisions) (#91820)
  • 5d587f9[flutter_conductor] Refactor next command (#91768)
  • 210a905Remove unused offset from Layer.addToScene/addChildrenToScene (#91753)
  • 4c8fa18Reland Remove autovalidate deprecations (#91443)
  • 06b5f98Roll Engine from 21f6725f2cf3 to 8a1879464840 (2 revisions) (#91828)
  • 06e75e9Minor doc fix for`CupertinoTabBar` (#91829)
  • 64b0cfdAdded support for MaterialState to InputDecorator (#91762)
  • ccc8261Remove BottomNavigationBarItem.title deprecation (#90295)
  • 8fa2a5eAdd `profileRenderObjectPaints` and `profileRenderObjectLayouts` service extensions (#91822)
  • ee2c72eRoll Engine from 8a1879464840 to 8034050e7810 (2 revisions) (#91836)
  • acab6dcReland Refactored ListTileTheme: ListTileThemeData, ThemeData.listThemeData (#91840)
  • ac745b3ThemeData property cleanup. (#91774)
  • 9570d35Add missing debug vars to debugAssertAllRenderVarsUnset (#91848)
  • 299d484Enable more lints (#91642)
  • 0065873Migrate xcdevice and ios devices to null safety (#91704)
  • 59a6ba7Migrate desktop_device to null safety (#91705)
  • 2f4e3ceImprove error message for when you're not running chromedriver (#91789)
  • 6c9259aRevert "Migrate desktop_device to null safety (#91705)" (#91911)
  • a82c50fRevert "Migrate xcdevice and ios devices to null safety (#91704)" (#91912)
  • 461a316Roll Engine from 8034050e7810 to 60d0fdfa2232 (18 revisions) (#91907)
  • 76f1718Roll Engine from 60d0fdfa2232 to 13e4ba56398a (2 revisions) (#91916)
  • 3ece170_CastError on Semantics copy in release mode (#91827)
  • ab5dfe1s/extent/size/ (#91775)
  • 30cc01fAdd callback when dismiss threshold is reached (#88736)
  • ff6f462Roll Engine from 13e4ba56398a to 77a9af74beb7 (2 revisions) (#91920)
  • d763127Bump targetSdkVersion to 31 and organize static values (#91719)
  • 8b1355eRoll Engine from 77a9af74beb7 to f6ad5636f117 (1 revision) (#91928)
  • 11308a8Deflake Mac plugin_test_ios (#91823)
  • 99c8dd5Add android:exported="true" to activity in Android manifest (#91934)
  • 9608a64Revert "Remove BottomNavigationBarItem.title deprecation" (#91930)
  • 50ed0a2Roll Engine from f6ad5636f117 to faa45f497f92 (2 revisions) (#91932)
  • 93da78fRoll Plugins from 176cfb8083bc to 9e46048ad2e1 (1 revision) (#91938)
  • 686a1c2Fix typo in code comments (#91995)
  • ef634b3Fix typo in settings_controller.dart (#91866)
  • 34ec94a[flutter_tools] migrate web_device.dart to null-safety (#91632)
  • 0407aa4Reland "Add multidex flag and automatic multidex support (#90944)" (#92049)
  • d74cf31Roll Plugins from 9e46048ad2e1 to aae841aa5a70 (1 revision) (#92059)
  • 6b94f2fAdd `TooltipVisibility` widget (#91609)
  • 63a64a8Revert "Add `TooltipVisibility` widget (#91609)" (#92088)
  • fa4d57aAdd android:exported property to support API 31 for deferred components test (#92066)
  • 170715dRoll Engine from faa45f497f92 to 910395ef686f (9 revisions) (#92082)
  • 31e3364Update outdated runners in the benchmarks folder (#91126)
  • b412f6fRevert "Update outdated runners in the benchmarks folder (#91126)" (#92106)
  • 921cfebMarks Linux_android flutter_gallery__image_cache_memory to be flaky (#92019)
  • 8474f41Migrate xcdevice and ios devices to null safety (#92056)
  • 502edd4Reland "Add TooltipVisibility widget" (#92090)
  • 8ab4de0Migrate desktop_device to null safety (#92055)
  • 38af87fRoll Engine from 910395ef686f to 9830def3a494 (2 revisions) (#92099)
  • 486c377Roll Plugins from aae841aa5a70 to fbb7d3aa514b (1 revision) (#92110)
  • a1e2942[ci.yaml] Only run test ownership on tot (#92122)
  • 98558b4Roll Plugins from fbb7d3aa514b to 3bffbf87fe96 (1 revision) (#92125)
  • 63c43a5Roll Engine from 9830def3a494 to 112fb84b5dc1 (4 revisions) (#92126)
  • e00d87f[keyboard_textfield_test] wait until the keyboard becomes visible (#92032)
  • 94999f7Set exported to true to allow external adb to start app for CI (#92118)
  • 43bbdd0Remove sandbox entitlement to allow tests to run on big sur. (#92065)
  • 2bdbe72Rewire all Dart entrypoints when the Dart plugin registrant is used. (#91856)
  • 0318ba7Roll Plugins from 3bffbf87fe96 to fecd22e1de55 (1 revision) (#92143)
  • f80d1d9Roll Engine from 112fb84b5dc1 to e6a4610ebd4c (6 revisions) (#92146)
  • 71a0b61Roll Engine from e6a4610ebd4c to 115c859b2cfb (2 revisions) (#92151)
  • cf443a7Roll Engine from 115c859b2cfb to 9594a68aa2b9 (2 revisions) (#92158)
  • a6e91c3Conductor UI step1 (#91903)
  • 42eb903[flutter_tools] iOS: display name defaults to the Title Case of flutter project name. (#91529)
  • ce4d635Fix visual overflow when overscrolling RenderShrinkWrappingViewport (#91620)
  • ec429e0[conductor] Added a generic tooltip widget (#92187)
  • bc89ae5Roll Plugins from fecd22e1de55 to b8aea6d0e73d (3 revisions) (#92192)
  • f84a2dcRoll Engine from 9594a68aa2b9 to 88428f36db1d (4 revisions) (#92193)
  • 5f4ac10Report exceptions from key event handlers and listeners (#91792)
  • 9b51eafRoll Engine from 88428f36db1d to d54f439cdae5 (1 revision) (#92204)
  • 8f574c2disabled flutter sandbox (#92200)
  • e593a86[flutter_conductor] validate git parsed version and release branch match (#92064)
  • 15de4aaFix persistentFooter padding (#92039)
  • 12ec91aThe covered child in AnimatedCrossFade should not get touch events (#91349)
  • 305a855Migrate integration test shard test data to null safety (#92147)
  • 7de92e2Add devicelab benchmark tags support (#92141)
  • ab4ce5aRoll Plugins from b8aea6d0e73d to cdbd62b4185e (1 revision) (#92214)
  • 83b28c1[flutter_conductor] remove old conductor entrypoint (#92219)
  • b11e962Roll Engine from d54f439cdae5 to 69156d8af006 (2 revisions) (#92213)
  • 48b51c3Fix ScrollBehavior copyWith (#91834)
  • 0ad369e[ci.yaml] Main branch support (#92216)
  • f76d553[ci.yaml] Explicitly use scheduler==luci (#92218)
  • 4d70c13Roll Engine from 69156d8af006 to 8c38444e64ad (1 revision) (#92222)
  • 44bf975remove Downloading ... stderr messages (#92211)
  • b4a929aRoll Engine from 8c38444e64ad to f4b81b133eba (3 revisions) (#92223)
  • c63c495Roll Plugins from cdbd62b4185e to c85fa03771ca (1 revision) (#92224)
  • ba0321eReland "Enable caching of CPU samples collected at application startup (#89600)" (#92220)
  • be2abc7Roll Engine from f4b81b133eba to 1c173ca64de8 (3 revisions) (#92230)
  • ac3c443Revert "Reland "Enable caching of CPU samples collected at application startup (#89600)" (#92220)" (#92235)
  • d62f75dRoll Engine from 1c173ca64de8 to ce74cbc3ce63 (1 revision) (#92233)
  • 062d1e5Roll Engine from ce74cbc3ce63 to d4e270979102 (2 revisions) (#92237)
  • f9632eeRoll Engine from d4e270979102 to e83934323379 (1 revision) (#92239)
  • 97c8a8aRoll Engine from e83934323379 to 6c28e5f004cd (1 revision) (#92246)
  • 2d8b8e1Roll Engine from 6c28e5f004cd to 5ab9c83d7dc8 (1 revision) (#92253)
  • ffbf69cIgnore analyzer implict dynamic checks for js_util generic return type (#92271)
  • e7c809eFix typos (#92245)
  • ad7727a[web] enable CanvasKit tests using a local bundle fetched from CIPD (#92134)
  • f0ce9c3[fuchsia] remove fuchsia_attach as it is no longer being used (#92272)
  • ba8cb1fUpdate the version of no-response bot. (#92281)
  • 10670d2Roll Plugins from c85fa03771ca to 5eec1e61d40c (1 revision) (#92282)
  • 09a1275Revert "Update the version of no-response bot. (#92281)" (#92288)
  • 01b1112Roll Plugins from 5eec1e61d40c to 7df7a8f71a85 (1 revision) (#92284)
  • be13a38[web] fix web_e2e_tests README (#92277)
  • 37dbe03Bump Android Compile SDK to 31 (#92022)
  • 9fc6944Roll Plugins from 7df7a8f71a85 to 99fbfbd56fe4 (1 revision) (#92293)
  • 9331548Roll Plugins from 99fbfbd56fe4 to 4b6b6b24c7a5 (2 revisions) (#92304)
  • 6f22783Roll Engine from 5ab9c83d7dc8 to d8a54333e57b (2 revisions) (#92269)
  • c0e0f4ffeat: migrate install_manifest.dart to null-safety (#92062)
  • c8321bbRoll Engine from d8a54333e57b to e898106f5306 (10 revisions) (#92311)
  • cf885c1Roll Engine from e898106f5306 to a86ce6b22fa8 (1 revision) (#92313)
  • 5a6744dRoll Engine from a86ce6b22fa8 to dcce9739126c (1 revision) (#92332)
  • 6dc4e81Roll Engine from dcce9739126c to ebe877f54e81 (1 revision) (#92367)
  • 4876817Roll Engine from ebe877f54e81 to d39266a72a4f (1 revision) (#92368)
  • 9cf1897Roll Engine from d39266a72a4f to c80cc613a85c (1 revision) (#92390)
  • e6fdc3cRoll Engine from c80cc613a85c to e39989b36af2 (1 revision) (#92396)
  • 95baca9Roll Engine from e39989b36af2 to 35ebc10913ce (2 revisions) (#92401)
  • 67499b5Add new pub command 'Token' (#91014)
  • 5cf7eafRoll Plugins from 4b6b6b24c7a5 to 94b836eca365 (1 revision) (#92420)
  • d2cea64Roll Engine from 35ebc10913ce to 4797fb0111d7 (1 revision) (#92428)
  • a586393ignore `Scaffold` drawer callbacks when value doesn't change (#92329)
  • e07115fRoll Engine from 4797fb0111d7 to 65af9702699c (1 revision) (#92432)
  • 4d79bb0Bump Kotlin version in templates and projects (#92052)
  • 1daae0bRemove assert that prevents WidgetSpans from being used in SelectableText (#92295)
  • 6434f8eRoll Engine from 65af9702699c to f9bd71bf13bb (3 revisions) (#92441)
  • 9350a14[ci.yaml] Disable plugins_test on release branches (#92442)
  • b98ed1bUpdate dartdoc to 4.1.0. (#92446)
  • 6842675Roll Engine from f9bd71bf13bb to 925bae45ee95 (3 revisions) (#92455)
  • acf6464skip failing test (#92529)
  • a24d556Fix ActivateIntent overriding the spacebar for text entry (#91129)
  • 11e83e7[web] fix race in the image_loading_integration.dart test (#92303)
  • 9afb45a[web] use local CanvasKit bundle in all e2e tests (#92305)
  • b025e38fix a throw due to double precison (#92486)
  • abecef6Revert "Fix ActivateIntent overriding the spacebar for text entry (#91129)" (#92544)
  • 816403fRoll Engine from 925bae45ee95 to fbad0fda670f (20 revisions) (#92539)
  • 13d14f1[doc] Update `suffixIcon`/`prefixIcon` for alignment with code snippet (#91998)
  • ccc9003Roll Plugins from 94b836eca365 to 0d330943941a (3 revisions) (#92546)
  • a07489dRoll Engine from fbad0fda670f to 8948972d65c4 (5 revisions) (#92554)
  • 8b88645Roll Engine from 8948972d65c4 to 38203d211aba (2 revisions) (#92558)
  • de966d8Add a "flutter debug_adapter" command that runs a DAP server (#91802)
  • 1ed73dbRoll Engine from 38203d211aba to 1e96a7773a13 (1 revision) (#92576)
  • ed61608Set TargetFile define for resident builds (#92511)
  • c850424Remove the pub offline flag from tests of the flutter_tools create command (#92534)
  • 5eacd89Roll Engine from 1e96a7773a13 to 21cc99dad491 (1 revision) (#92580)
  • b279ff4Run flutter tester with arch -x86_64 on arm64 Mac (#92508)
  • 6e6acfeRoll Plugins from 0d330943941a to 42364e49fc25 (1 revision) (#92585)
  • 30e7264Marks Mac_ios platform_view_ios__start_up to be flaky (#92423)
  • b78505dRoll Engine from 21cc99dad491 to 9461262f6c0c (2 revisions) (#92588)
  • aff69e4Add integration_test to flavor test project (#92520)
  • bb6e3afRoll Engine from 9461262f6c0c to 6ffe7888ec27 (4 revisions) (#92592)
  • ebb48e1Add missing transform == check for gradients (#91898)
  • 50ead38- add FadeInImage.placeholderFit (#90739)
  • 53de889Roll Engine from 6ffe7888ec27 to 883518c02f24 (1 revision) (#92600)
  • 30d3866Add extra benchmark metrics to test name in addition to builder name (#92530)
  • 2d7d43aRoll Plugins from 42364e49fc25 to 984015dffebb (1 revision) (#92609)
  • a9a9817Roll Engine from 883518c02f24 to bb173be329fe (2 revisions) (#92610)
  • d49c255Roll Plugins from 984015dffebb to 93f04832c622 (5 revisions) (#92618)
  • 4de0ae4Roll Engine from bb173be329fe to 4c4b773e7ef5 (3 revisions) (#92619)
  • 2a5630eRoll Engine from 4c4b773e7ef5 to 3b091cdebee3 (1 revision) (#92624)
  • 7cb43e9Roll Engine from 3b091cdebee3 to 0e0848e2fc04 (4 revisions) (#92638)
  • 57dbf7fAdd support for running tests through debug-adapter (#92587)
  • e57ffceRoll Engine from 0e0848e2fc04 to 450513574bcc (3 revisions) (#92649)
  • 9bd0fefRoll Engine from 450513574bcc to c9dda84396f2 (1 revision) (#92668)
  • 45f4380[flutter_conductor] Lift rev parse in conductor (#92594)
  • 9d26386[release_dashboard] Remove project (#92516)
  • 7f17708feat: migrate ios/bitcode.dart to null safety (#92557)
  • ca788d8Leader not always dirty (#92598)
  • a8642f6Roll Plugins from 93f04832c622 to 34ea0c3c1a09 (1 revision) (#92677)
  • 7b475a9Roll Engine from c9dda84396f2 to 191b18d49026 (3 revisions) (#92680)
  • 322971fRoll Engine from 191b18d49026 to 9295037358f5 (1 revision) (#92684)
  • efd348dRoll Engine from 9295037358f5 to 37f1b478eed3 (1 revision) (#92688)
  • e5bbaf6Roll Engine from 37f1b478eed3 to a04ec3aaa6f1 (3 revisions) (#92691)
  • 7f7f487Feature/cpu gpu memory gallery transition tests (#92626)
  • 5c390c7Roll Plugins from 34ea0c3c1a09 to 03622197cc1e (1 revision) (#92690)
  • dcb3037Roll Engine from a04ec3aaa6f1 to ddf4bd598eb3 (3 revisions) (#92694)
  • 365d76c[flutter_tools] [iOS] Change UIViewControllerBasedStatusBarAppearance to true to fix rotation status bar disappear in portrait (#92647)
  • 6602107InputDecorator floating label origin no longer depends on ThemeData.fixTextFieldOutlineLabel (#92698)
  • 78689d3Refactor ThemeData (#91497)
  • 5a959c9wrap $DART_BIN invocation in double quotes to escape spaces (#92617)
  • 125545dFix typo in the API docs of brightness (#92713)
  • bd935e5feat: migrate test_data/project.dart to null safety (#92646)
  • 23f7985Improve how AttributedStrings are presented in the widget inspector (#92450)
  • a8046c0Roll Plugins from 03622197cc1e to e51cc1df7b75 (1 revision) (#92724)
  • c3ad4f0Roll Engine from ddf4bd598eb3 to 3a0a63c2d209 (12 revisions) (#92702)
  • 41167c9feat: migrate macos/macos_device.dart to null safety (#92633)
  • 5883a66Differentiate between TalkBack versions for semantics tests. (#92602)
  • b0810bcFix analysis throwing string (#91435)
  • 53e04deMigrate mdns_discovery and ios simulator to null safety (#92124)
  • 0c9a420Migrate android_device to null safety (#92128)
  • dc9c62aRemoved primaryVariant from usage by the SnackBar. (#92443)
  • 04156b6[flutter_tools] xcresult parser. (#92604)
  • 7b507f6Revert "Refactor ThemeData (#91497)" (#92820)
  • c97a862Update lockfiles (#92800)
  • 8880008Update Data Table Class with Borders Like Table Widgets (#36837) (#92670)
  • 93b3810Roll Gallery with updated Gradle lockfiles (#92850)
  • 6bd0237Roll Engine from e781ed8b2980 to 7cee46cca464 (6 revisions) (#92847)
  • c3242a1Blinking cursor respects TickerMode (#92614)
  • 8865212Migrate doctor to null safety (#92131)
  • 33e261cUpdate clipboard status on cut (#92167)
  • fb1f8b0Roll Engine from 7cee46cca464 to 43561d8820e0 (3 revisions) (#92855)
  • 3dab555[flutter_releases] Flutter beta 2.8.0-3.1.pre Framework Cherrypicks (#93448)
  • 2901cd7[flutter_releases] Flutter beta 2.8.0-3.2.pre Framework Cherrypicks (#93841)
  • 262b70e[flutter_releases] Flutter beta 2.8.0-3.3.pre Framework Cherrypicks (#94490)
  • cf44000'Update Engine revision to 40a99c595137e4b2f5b2efa8ff343ea23c1e16b8 for stable release 2.8.0' (#94889)
  • 2ef5ad6Update configurations to match the current test beds. (#95303)
  • 77d935a[flutter_releases] Flutter stable 2.8.1 Framework Cherrypicks (#95375)

Bug fix Bug fix 4

AI explanationAI-generated · grounded in cited sources
AI explanations are not configured
Set AI_PROVIDER (for example to openai-compatible with a local Ollama or LM Studio endpoint) to enable grounded explanations. Everything else on this page works without an AI provider.
Was this useful?