rune_devtools_extension 0.2.0
rune_devtools_extension: ^0.2.0 copied to clipboard
Flutter DevTools extension for the rune package. Inspect live RuneView instances, their source, data context, and last error from the DevTools tab.
Changelog #
All notable changes to this package are documented here. Format follows Keep a Changelog; versioning follows Semantic Versioning.
0.2.0 - 2026-04-21 - DevTools Phase 3: source hot-edit #
Added #
- Inline source editor per card. Each view card surfaces an
Edit button next to the Source section. Tapping it replaces
the read-only source with a multi-line
TextField; Apply pushes the new source to the host via the newext.rune.editVM service extension, and the matchingRuneViewrebuilds with the override on the next frame. The original source is preserved on the payload asoriginalSourceand can be restored with Reset (callsext.rune.reset). - "overridden" chip on each card's header when an edit is active, so it is obvious at a glance which views are rendering non-widget source.
- Original source section appears below the editor while an override is active, with a Reset button to revert to the widget's declared source.
Notes #
- Requires
rune ^1.19.0. The host-side inspector now exposessetSourceOverrideByIdand registers two additional VM service extensions:ext.rune.edit,ext.rune.reset. - Hot-edit is a debug-only feature. Release builds of the host never register the service extensions, so the tab's Edit / Reset buttons have no effect on release deployments.
0.1.0 - 2026-04-21 #
Added #
web/Flutter-web source scaffold (index.html,manifest.json,favicon.png, maskable icons) soflutter build webcan compile the DevTools UI against it. Tracked in git and published to pub.flutter-io.cn.tool/build_bundle.shconvenience script that runsflutter pub get+flutter build webintoextension/devtools/build/and strips.symbolsdebug sidecars. Used by maintainers beforedart pub publishand by path-dep consumers after cloning..pubignoreat the package root. Takes precedence over.gitignoreduring publish and deliberately omitsextension/devtools/build/. The compiled bundle stays out of git (it is ~30 MB of derived artefacts) but lands inside the pub.flutter-io.cn archive on each release so Flutter DevTools can render the tab without any consumer-side build step. The same file also excludestest/,tool/, andweb/from the published archive: unit tests, the bundle-rebuild script, and the Flutter-web source scaffold are maintainer-only artefacts that add no value to consumers and would just inflate every download.
0.1.0-scaffold - 2026-04-20 #
Added #
- First release of
rune_devtools_extension. Registers a rune tab inside Flutter DevTools that inspects liveRuneViewinstances from a host app running in debug or profile mode. - The extension calls
ext.rune.inspecton the host isolate over the VM service protocol.rune>= 1.18.0 registers that extension lazily on the firstRuneViewmount. Payload shape:{"views": [{"id", "source", "data", "cacheSize", "lastError"}]}. - UI is a list of expandable cards, one per live view:
- Source string (selectable, monospace).
- Data context pretty-printed as JSON.
- Parse-cache size.
- Last render error (surfaces
RuneExceptioncaret pointers). - Snapshot-builder errors isolated per view.
- Read-only: no write-back in v0.1.0. Future versions may add source hot-edit and a historical error log.
- 7 unit tests on the wire-format parser cover happy-path,
missing fields, stringly-typed
idcoercion, non-Mapdata,cacheSizenum-to-int coercion, and error-field pass-through.
Notes #
- The package ships a pre-built Flutter web app under
extension/devtools/build/. Runflutter build webper the README to regenerate after modifying the extension source. - Release builds of the host app pay zero cost because
dart:developer.registerExtensionis compiled out.