@bdayadev/flutter-ultra-mcp 0.0.0 → 1.0.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.
Files changed (58) hide show
  1. package/.claude-plugin/marketplace.json +23 -0
  2. package/.claude-plugin/plugin.json +14 -14
  3. package/.mcp.json +67 -67
  4. package/CODE_OF_CONDUCT.md +83 -83
  5. package/CONTRIBUTING.md +108 -108
  6. package/LICENSE +201 -201
  7. package/README.md +77 -77
  8. package/SECURITY.md +19 -19
  9. package/dart/ultra_flutter/CHANGELOG.md +34 -34
  10. package/dart/ultra_flutter/EXTENSIONS.md +61 -61
  11. package/dart/ultra_flutter/README.md +109 -109
  12. package/dart/ultra_flutter/pubspec.yaml +37 -37
  13. package/dart/ultra_flutter_devtools/README.md +7 -7
  14. package/dart/ultra_flutter_devtools/pubspec.yaml +27 -27
  15. package/docs/UPSTREAM-PATROL-PRS.md +5 -5
  16. package/docs/UPSTREAM-SENTRY-PR.md +62 -62
  17. package/docs/discovery-empirics.md +435 -435
  18. package/examples/counter-app/README.md +24 -24
  19. package/examples/counter-app/pubspec.yaml +23 -23
  20. package/examples/oidc-app/README.md +48 -48
  21. package/examples/oidc-app/pubspec.yaml +24 -24
  22. package/package.json +82 -82
  23. package/packages/flutter-ultra-browser/README.md +29 -29
  24. package/packages/flutter-ultra-browser/package.json +39 -39
  25. package/packages/flutter-ultra-build/README.md +60 -60
  26. package/packages/flutter-ultra-build/package.json +38 -38
  27. package/packages/flutter-ultra-devtools/README.md +7 -7
  28. package/packages/flutter-ultra-devtools/package.json +36 -36
  29. package/packages/flutter-ultra-gesture/README.md +51 -51
  30. package/packages/flutter-ultra-gesture/package.json +58 -58
  31. package/packages/flutter-ultra-native-desktop/README.md +131 -131
  32. package/packages/flutter-ultra-native-desktop/package.json +81 -81
  33. package/packages/flutter-ultra-native-mobile/README.md +103 -103
  34. package/packages/flutter-ultra-native-mobile/package.json +72 -72
  35. package/packages/flutter-ultra-patrol/README.md +40 -40
  36. package/packages/flutter-ultra-patrol/package.json +38 -38
  37. package/packages/flutter-ultra-runtime/README.md +63 -63
  38. package/packages/flutter-ultra-runtime/package.json +69 -69
  39. package/shared/contracts/package.json +31 -31
  40. package/shared/device-router/README.md +51 -51
  41. package/shared/device-router/package.json +62 -62
  42. package/shared/keyring/README.md +7 -7
  43. package/shared/keyring/package.json +24 -24
  44. package/shared/mcp-runtime/README.md +116 -116
  45. package/shared/mcp-runtime/package.json +58 -58
  46. package/shared/state-store/README.md +66 -66
  47. package/shared/state-store/package.json +60 -60
  48. package/shared/vm-service-client/README.md +135 -135
  49. package/shared/vm-service-client/package.json +62 -62
  50. package/skills/_internal-on-tool-failure/SKILL.md +13 -13
  51. package/skills/_internal-session-bootstrap/SKILL.md +18 -18
  52. package/skills/debug/SKILL.md +20 -20
  53. package/skills/devtools/SKILL.md +21 -21
  54. package/skills/drive/SKILL.md +20 -20
  55. package/skills/scaffold/SKILL.md +21 -21
  56. package/skills/setup/SKILL.md +26 -26
  57. package/skills/test/SKILL.md +19 -19
  58. package/skills/tour/SKILL.md +22 -22
@@ -1,62 +1,62 @@
1
- # Upstream Sentry PR — expose `SentryWidgetsBindingMixin`
2
-
3
- ## Status
4
-
5
- **Not filed yet.** Tracked as Path A per `flutter-ultra-mcp-v1.md` §6.1.
6
- Filing this PR is opportunistic cleanup, not a blocker for v1.
7
-
8
- ## Current state
9
-
10
- `package:sentry_flutter/sentry_flutter.dart` (v9.20.0) declares:
11
-
12
- ```dart
13
- export 'src/binding_wrapper.dart'
14
- show BindingWrapper, SentryWidgetsFlutterBinding;
15
- ```
16
-
17
- The `show` clause hides `SentryWidgetsBindingMixin` from the public API
18
- even though the mixin is defined in the same file. Consumers reach it via a
19
- deliberate `// ignore: implementation_imports` import of
20
- `package:sentry_flutter/src/binding_wrapper.dart`.
21
-
22
- ## Proposed change
23
-
24
- Extend the `show` clause to include the mixin:
25
-
26
- ```dart
27
- export 'src/binding_wrapper.dart'
28
- show BindingWrapper, SentryWidgetsFlutterBinding, SentryWidgetsBindingMixin;
29
- ```
30
-
31
- The mixin is already used as a typedef inside other public Sentry classes,
32
- so exposing it is a non-breaking change.
33
-
34
- ## Motivation
35
-
36
- Composability. Multiple Flutter ecosystem packages (testing harnesses,
37
- debug bindings, AI-agent automation like ultra_flutter) need to mix
38
- Sentry's binding instrumentation alongside their own. Today they either:
39
-
40
- 1. Subclass `SentryWidgetsFlutterBinding` (cannot also compose another
41
- `WidgetsFlutterBinding` subclass — Dart `with` requires a mixin), OR
42
- 2. Reach into `package:sentry_flutter/src/binding_wrapper.dart` directly
43
- with `// ignore: implementation_imports` (brittle, breaks the visibility
44
- contract).
45
-
46
- Making the mixin public moves option 2 from "private reach-through" to
47
- "sanctioned composition".
48
-
49
- ## Risks
50
-
51
- - Surface-area expansion: once public, the mixin name + signature are
52
- versioned. Sentry maintainers would need to follow semver on it.
53
- - Misuse: users might mix the mixin onto unusual base classes and hit
54
- internal-state assumptions. Counter: the mixin already encapsulates its
55
- state cleanly (`_isTrackingActive`, `_options`, etc.) and gracefully
56
- degrades when the rest of Sentry isn't wired.
57
-
58
- ## When to file
59
-
60
- After `ultra_flutter` ships v1.0 and we have at least one real consumer
61
- demonstrating the composition pattern. PR will reference the
62
- ultra_flutter use case as the concrete motivation.
1
+ # Upstream Sentry PR — expose `SentryWidgetsBindingMixin`
2
+
3
+ ## Status
4
+
5
+ **Not filed yet.** Tracked as Path A per `flutter-ultra-mcp-v1.md` §6.1.
6
+ Filing this PR is opportunistic cleanup, not a blocker for v1.
7
+
8
+ ## Current state
9
+
10
+ `package:sentry_flutter/sentry_flutter.dart` (v9.20.0) declares:
11
+
12
+ ```dart
13
+ export 'src/binding_wrapper.dart'
14
+ show BindingWrapper, SentryWidgetsFlutterBinding;
15
+ ```
16
+
17
+ The `show` clause hides `SentryWidgetsBindingMixin` from the public API
18
+ even though the mixin is defined in the same file. Consumers reach it via a
19
+ deliberate `// ignore: implementation_imports` import of
20
+ `package:sentry_flutter/src/binding_wrapper.dart`.
21
+
22
+ ## Proposed change
23
+
24
+ Extend the `show` clause to include the mixin:
25
+
26
+ ```dart
27
+ export 'src/binding_wrapper.dart'
28
+ show BindingWrapper, SentryWidgetsFlutterBinding, SentryWidgetsBindingMixin;
29
+ ```
30
+
31
+ The mixin is already used as a typedef inside other public Sentry classes,
32
+ so exposing it is a non-breaking change.
33
+
34
+ ## Motivation
35
+
36
+ Composability. Multiple Flutter ecosystem packages (testing harnesses,
37
+ debug bindings, AI-agent automation like ultra_flutter) need to mix
38
+ Sentry's binding instrumentation alongside their own. Today they either:
39
+
40
+ 1. Subclass `SentryWidgetsFlutterBinding` (cannot also compose another
41
+ `WidgetsFlutterBinding` subclass — Dart `with` requires a mixin), OR
42
+ 2. Reach into `package:sentry_flutter/src/binding_wrapper.dart` directly
43
+ with `// ignore: implementation_imports` (brittle, breaks the visibility
44
+ contract).
45
+
46
+ Making the mixin public moves option 2 from "private reach-through" to
47
+ "sanctioned composition".
48
+
49
+ ## Risks
50
+
51
+ - Surface-area expansion: once public, the mixin name + signature are
52
+ versioned. Sentry maintainers would need to follow semver on it.
53
+ - Misuse: users might mix the mixin onto unusual base classes and hit
54
+ internal-state assumptions. Counter: the mixin already encapsulates its
55
+ state cleanly (`_isTrackingActive`, `_options`, etc.) and gracefully
56
+ degrades when the rest of Sentry isn't wired.
57
+
58
+ ## When to file
59
+
60
+ After `ultra_flutter` ships v1.0 and we have at least one real consumer
61
+ demonstrating the composition pattern. PR will reference the
62
+ ultra_flutter use case as the concrete motivation.