@bdayadev/flutter-ultra-mcp 1.9.3 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,7 +10,7 @@
10
10
  {
11
11
  "name": "flutter",
12
12
  "description": "Durable cross-platform Flutter automation via 8 specialized MCP servers, in-app mixin binding, and an optional DevTools panel. Replaces marionette_mcp and the official dart mcp-server for Claude Code.",
13
- "version": "1.9.3",
13
+ "version": "1.10.0",
14
14
  "author": {
15
15
  "name": "Bdaya-Dev",
16
16
  "url": "https://github.com/Bdaya-Dev"
@@ -23,5 +23,5 @@
23
23
  "tags": ["flutter", "dart", "mcp", "testing", "automation", "patrol", "cross-platform"]
24
24
  }
25
25
  ],
26
- "version": "1.9.3"
26
+ "version": "1.10.0"
27
27
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
3
3
  "name": "flutter",
4
- "version": "1.9.3",
4
+ "version": "1.10.0",
5
5
  "description": "Durable cross-platform Flutter automation via 8 specialized MCP servers, in-app mixin binding, and an optional DevTools panel. Replaces marionette_mcp and the official dart mcp-server for Claude Code.",
6
6
  "author": {
7
7
  "name": "Bdaya-Dev",
@@ -26,11 +26,14 @@ void main() {
26
26
  class AppBinding extends WidgetsFlutterBinding
27
27
  with SentryWidgetsBindingMixin, UltraFlutterBinding {}
28
28
 
29
- void main() {
29
+ void main() async {
30
30
  if (kDebugMode) {
31
- AppBinding.ensureInitialized();
31
+ AppBinding();
32
+ } else {
33
+ WidgetsFlutterBinding.ensureInitialized();
32
34
  }
33
- // ...
35
+ await SentryFlutter.init((options) { /* ... */ });
36
+ runApp(const MyApp());
34
37
  }
35
38
  ```
36
39
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bdayadev/flutter-ultra-mcp",
3
- "version": "1.9.3",
3
+ "version": "1.10.0",
4
4
  "description": "Flutter Ultra MCP plugin monorepo — 8 MCP servers + ultra_flutter Dart packages + skills for Claude Code.",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/Bdaya-Dev/flutter-ultra-mcp",
@@ -5,7 +5,7 @@ description: One-command setup of the flutter-ultra-mcp plugin in an existing Fl
5
5
 
6
6
  # Plugin Setup
7
7
 
8
- Expected end state: `UltraFlutterBinding` initialized in the app entry point, `ultra_flutter` in `dev_dependencies`, patrol fork overridden if needed, and a smoke launch confirming the VM Service attaches correctly.
8
+ Expected end state: `UltraFlutterBinding` initialized in the app entry point, `ultra_flutter` in `dependencies`, patrol fork overridden if needed, and a smoke launch confirming the VM Service attaches correctly.
9
9
 
10
10
  ## Workflow
11
11
 
@@ -17,10 +17,10 @@ Expected end state: `UltraFlutterBinding` initialized in the app entry point, `u
17
17
  - `mcp__plugin_flutter_flutter-ultra-build__list_dart_defines` — discover required dart-defines for launch.
18
18
  - `mcp__plugin_flutter_flutter-ultra-build__list_flavors` — check for flavor configuration.
19
19
 
20
- ### 2. Add `ultra_flutter` to dev_dependencies
20
+ ### 2. Add `ultra_flutter` to dependencies
21
21
 
22
- - `mcp__plugin_flutter_flutter-ultra-build__pub_add` with `package: ultra_flutter`, `dev: true`.
23
- - If it fails (not on pub.dev), use `mcp__plugin_flutter_flutter-ultra-build__pubspec_overrides_set` to point to the bundled path, add `ultra_flutter: any` under `dev_dependencies` manually, then `mcp__plugin_flutter_flutter-ultra-build__pub_get`.
22
+ - `mcp__plugin_flutter_flutter-ultra-build__pub_add` with `package: ultra_flutter` (NOT dev — it runs in the app process, guarded by `kDebugMode`).
23
+ - If it fails (not on pub.dev), use `mcp__plugin_flutter_flutter-ultra-build__pubspec_overrides_set` to point to the bundled path, add `ultra_flutter: any` under `dependencies` manually, then `mcp__plugin_flutter_flutter-ultra-build__pub_get`.
24
24
 
25
25
  ### 3. Patch the app entry point
26
26
 
@@ -28,27 +28,43 @@ Expected end state: `UltraFlutterBinding` initialized in the app entry point, `u
28
28
 
29
29
  ```dart
30
30
  import 'package:flutter/foundation.dart';
31
+ import 'package:flutter/widgets.dart';
31
32
  import 'package:ultra_flutter/ultra_flutter.dart';
32
33
 
33
34
  void main() {
34
35
  if (kDebugMode) {
35
36
  UltraFlutterBinding.ensureInitialized();
37
+ } else {
38
+ WidgetsFlutterBinding.ensureInitialized();
36
39
  }
37
40
  runApp(const MyApp());
38
41
  }
39
42
  ```
40
43
 
41
- **With Sentry** (custom binding mixin):
44
+ **With Sentry** (composed binding class — both mixins on one binding):
42
45
 
43
46
  ```dart
47
+ import 'package:flutter/foundation.dart';
48
+ import 'package:flutter/widgets.dart';
49
+ import 'package:sentry_flutter/sentry_flutter.dart';
44
50
  import 'package:ultra_flutter/ultra_flutter.dart';
45
51
 
46
- class AppBinding extends WidgetsFlutterBinding with UltraFlutterBindingMixin {
47
- static AppBinding ensureInitialized() =>
48
- WidgetsFlutterBinding.ensureInitialized() as AppBinding;
52
+ class AppBinding extends WidgetsFlutterBinding
53
+ with SentryWidgetsBindingMixin, UltraFlutterBinding {}
54
+
55
+ void main() async {
56
+ if (kDebugMode) {
57
+ AppBinding();
58
+ } else {
59
+ WidgetsFlutterBinding.ensureInitialized();
60
+ }
61
+ await SentryFlutter.init((options) { /* ... */ });
62
+ runApp(const MyApp());
49
63
  }
50
64
  ```
51
65
 
66
+ The `on WidgetsBinding` constraint lets `UltraFlutterBinding` compose with any other mixin — Sentry, integration_test, or custom bindings. Only one binding class can exist per process, so both mixins must be on the same class.
67
+
52
68
  Skip if `project_info` reported `hasUltraBinding: true`.
53
69
 
54
70
  ### 4. Configure patrol fork override (if patrol detected)
@@ -130,7 +146,7 @@ User: "Set up flutter-ultra on my app."
130
146
  1. flutter_doctor -> all checks pass
131
147
  2. project_info -> entryPoints: ["lib/main.dart"], hasSentry: false, hasPatrol: false
132
148
  3. list_devices -> chrome, windows
133
- 4. pub_add ultra_flutter dev:true -> added
149
+ 4. pub_add ultra_flutter -> added to dependencies
134
150
  5. Edit lib/main.dart -> add UltraFlutterBinding.ensureInitialized()
135
151
  6. pub_get -> resolved
136
152
  7. analyze -> 0 errors