leonard_flutter 0.3.1
leonard_flutter: ^0.3.1 copied to clipboard
Host WidgetsBinding for Leonard.
Changelog #
0.3.1 #
- Fix:
core.enter_textnow enters text throughEditableTextState.userUpdateTextEditingValue(the same path a physical keystroke uses) instead of assigningcontroller.valuedirectly.onChangedwas never fired before, leaving app state that depends on it — button enablement,Formvalidation — stale afterenter_text. Submission callbacks are unaffected:onSubmitted/onFieldSubmittedfire fromperformAction, not from an edit, soenter_textstill does not submit. No API changes.
0.3.0 #
- Breaking: test helpers no longer ship from
leonard_flutter. Addleonard_flutter_test: ^0.1.0todev_dependenciesand import its barrel instead. Imports of the deletedpackage:leonard_flutter/test_support/perception_serializer.dartmust usepackage:genesis_perception/genesis_perception.dartdirectly.
0.2.2 #
- feat: on-demand
ext.leonard.core.get_diagnostics_treediagnostics extension. Projects the core + registered perception extensions to Genesis diagnostics contract 1 only when requested (e.g. while the DevTools Diagnostics panel is open) —get_stable_observation's hot path is unchanged and still carries no diagnostics tree. A plainleonard_flutterdependency automatically discovers the bundled Leonard DevTools extension with Conversation and Diagnostics modes; no adopter dependency onleonard_devtoolsorgenesis_foundationis required. - Fix: move the test-only
leonard_agentdependency todev_dependencies, so applications can installleonard_flutteralongside packages that usesse_channel ^0.1.1(includingsignalr_netcore) without a version-solving conflict. No public API or runtime behavior changes.
0.2.1 #
- Bump
genesis_perceptionto^0.2.0(the genesis builder wave). No API changes in this package; the perception wire contract is unchanged.
0.2.0 #
- Breaking: VM-service methods now use
ext.leonard.*. Construct names withkLeonardExtensionPrefixfromleonard_contract. - The binding emits
kLeonardProtocolVersionin its handshake.
0.1.8 #
- Republish so the pub.dev archive actually carries
LeonardBinding.extensionsReady(aFuture<void>that completes once the leonard service extensions are registered). The getter landed in the repo while the version stayed 0.1.7, so the hosted 0.1.7 archive predates it and consumers pinning^0.1.7from pub.dev could not compile against it (butane_flutter-s2w).
0.1.7 #
- The core semantics fragment now emits
identifier(fromSemanticsData.identifier, set viaSemantics(identifier:)) alongsidelabelandvalue— a stable, locale-independent key for addressing a node. Emitted present-only, so apps that set no identifiers are unaffected.
0.1.6 #
- The core semantics fragment now emits a
valuefield (fromSemanticsData.value) alongsidelabel, so the harness sees a node's current value (e.g. a text field's contents) uniformly with the native channel's record shape. - Stability: the settle loop no longer wedges when a framework callback stays
registered across frames — the persistent-callback baseline is dropped from
isAnyBusy, so a quiet frame is correctly reported as idle.
0.1.5 #
core.handshakenow advertises acapabilitieslist alongside the extension manifest.screenshot(the rawcore.screenshotVM extension) is reachable but is not a namespaced tool, so it never appeared in the manifest — a driver listing tools would wrongly conclude "no screenshot". It is now reported as a capability, gated on the same debug/profile condition as the extension itself (absent in release).
0.1.4 #
- Extension contract extracted to the new
leonard_contractpackage (Flutter-free):LeonardExtension,LeonardTool,PerceptionExtension,ExtensionRegistry, and the dispatch helpers now live there and are re-exported viacontract.dart, so consumers are unaffected. Adds aleonard_contractdependency. The unused frame-callback and error-handler hooks were dropped, removing theSchedulerBinding/FlutterErrorDetailscoupling from the contract; the binding's error-ring-buffer capture is unchanged.
0.1.3 #
- Perception serialization de-duplicated:
serializePerceptionFragmentnow lives ingenesis_perceptionand is re-exported here. Bumps thegenesis_perceptionfloor to^0.1.2(the version that introduced it). - Observation: expose scroll extent (
pos/min/max) on scrollable nodes, so the agent can see scroll position and bounds instead of guessing.
0.1.2 #
- Fix: a new agent handshake resets the session-terminated latch set by
core.done. Previously, reusing one running app across multiple agent drives left the binding permanently terminated after the first drive'score.done, so every subsequent action returnedsession_terminatedand the agent appeared stuck (model-agnostic).core.handshakenow clears the latch — a handshake marks the start of a new session.
0.1.1 #
- Fix: ship the compiled DevTools extension bundle in the published package.
0.1.0 omitted
extension/devtools/build/because the repo-rootbuild/.gitignorerule excluded it (pub publishhonors.gitignore), so the "Leonard" DevTools tab was missing for consumers. The bundle is now un-ignored and shipped.
0.1.0 #
- Host
WidgetsBinding(LeonardBinding) with a single-path perception observation pipeline (PerceptionOwner-backed serialization). LeonardExtensionauthoring contract; core fragment is perception-native.- Ships the DevTools extension (the "Leonard" tab) via
extension/devtools/. - VM-service surface
ext.leonard.*(protocol-stable).