@mushi-mushi/react-native 0.24.3 → 0.24.4
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.
- package/LICENSE +1 -1
- package/README.md +27 -26
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +6 -6
package/LICENSE
CHANGED
package/README.md
CHANGED
|
@@ -2,32 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
> **Your AI wrote it. Mushi tells you why it broke.**
|
|
4
4
|
|
|
5
|
-
React Native SDK for [Mushi Mushi](https://www.npmjs.com/package/mushi-mushi)
|
|
5
|
+
The React Native and Expo SDK for [Mushi Mushi](https://www.npmjs.com/package/mushi-mushi). It adds a bug button and a report sheet to your iOS and Android app. When a user reports a problem, Mushi gets a screenshot, the screen, device details and recent console and network entries, explains the cause in plain English, and hands your editor a fix to start from.
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
>
|
|
9
|
-
> **Other frameworks:** [`@mushi-mushi/react`](https://npmjs.com/package/@mushi-mushi/react) · [`@mushi-mushi/vue`](https://npmjs.com/package/@mushi-mushi/vue) · [`@mushi-mushi/svelte`](https://npmjs.com/package/@mushi-mushi/svelte) · [`@mushi-mushi/angular`](https://npmjs.com/package/@mushi-mushi/angular) · [`@mushi-mushi/capacitor`](https://npmjs.com/package/@mushi-mushi/capacitor) · [`@mushi-mushi/web`](https://npmjs.com/package/@mushi-mushi/web)
|
|
10
|
-
|
|
11
|
-
## What this package adds on mobile
|
|
12
|
-
|
|
13
|
-
Every bug your users feel — a button that won't tap, a screen that freezes, a layout that folds on their device — gets captured, classified by AI, and fed into a lesson library that prevents the same class of mistake in the next PR review and the next AI agent run. That's the closed loop the main [`mushi-mushi`](https://www.npmjs.com/package/mushi-mushi) README describes. This package is the mobile entry point.
|
|
14
|
-
|
|
15
|
-
## Error monitoring (optional)
|
|
16
|
-
|
|
17
|
-
Mushi captures user-reported bugs through its own ingest pipeline. If you also run **Sentry** in your React Native app, wire both for full coverage:
|
|
18
|
-
|
|
19
|
-
```tsx
|
|
20
|
-
import * as Sentry from '@sentry/react-native'
|
|
21
|
-
|
|
22
|
-
Sentry.init({ dsn: process.env.EXPO_PUBLIC_SENTRY_DSN })
|
|
7
|
+
## Quick start
|
|
23
8
|
|
|
24
|
-
|
|
9
|
+
```bash
|
|
10
|
+
npx mushi-mushi # detects React Native / Expo, installs this package, writes env vars
|
|
11
|
+
# or: npm install @mushi-mushi/react-native
|
|
25
12
|
```
|
|
26
13
|
|
|
27
|
-
See [`@mushi-mushi/web` Sentry bridge](https://github.com/kensaurus/mushi-mushi/tree/master/packages/web#sentry-companion) for the dual-capture pattern on web.
|
|
28
|
-
|
|
29
|
-
## Quick start
|
|
30
|
-
|
|
31
14
|
```tsx
|
|
32
15
|
import { MushiProvider } from '@mushi-mushi/react-native'
|
|
33
16
|
|
|
@@ -40,7 +23,25 @@ export default function App() {
|
|
|
40
23
|
}
|
|
41
24
|
```
|
|
42
25
|
|
|
43
|
-
That renders a floating
|
|
26
|
+
That renders a floating bug button and a slide-up report sheet. The button stays out of the way until tapped. With `@react-native-async-storage/async-storage` installed, reports queue offline and send when the connection is back. Docs: [React Native SDK reference](https://kensaur.us/mushi-mushi/docs/sdks/react-native)
|
|
27
|
+
|
|
28
|
+
Other frameworks: [`@mushi-mushi/react`](https://npmjs.com/package/@mushi-mushi/react) · [`@mushi-mushi/vue`](https://npmjs.com/package/@mushi-mushi/vue) · [`@mushi-mushi/svelte`](https://npmjs.com/package/@mushi-mushi/svelte) · [`@mushi-mushi/angular`](https://npmjs.com/package/@mushi-mushi/angular) · [`@mushi-mushi/capacitor`](https://npmjs.com/package/@mushi-mushi/capacitor) · [`@mushi-mushi/web`](https://npmjs.com/package/@mushi-mushi/web)
|
|
29
|
+
|
|
30
|
+
## What this package adds on mobile
|
|
31
|
+
|
|
32
|
+
Every bug your users feel — a button that won't tap, a screen that freezes, a layout that folds on their device — gets captured, classified by AI, and fed into a lesson library that prevents the same class of mistake in the next PR review and the next AI agent run. That's the closed loop the main [`mushi-mushi`](https://www.npmjs.com/package/mushi-mushi) README describes. This package is the mobile entry point.
|
|
33
|
+
|
|
34
|
+
## Using Sentry too (optional)
|
|
35
|
+
|
|
36
|
+
Mushi does not need Sentry. If you already run **Sentry** in your React Native app, keep it; the two do different jobs:
|
|
37
|
+
|
|
38
|
+
```tsx
|
|
39
|
+
import * as Sentry from '@sentry/react-native'
|
|
40
|
+
|
|
41
|
+
Sentry.init({ dsn: process.env.EXPO_PUBLIC_SENTRY_DSN })
|
|
42
|
+
|
|
43
|
+
// Mushi handles user reports + screenshot context; Sentry handles thrown errors.
|
|
44
|
+
```
|
|
44
45
|
|
|
45
46
|
## Widget trigger modes
|
|
46
47
|
|
|
@@ -154,7 +155,7 @@ When `react-native-view-shot` is installed, the SDK captures the current screen
|
|
|
154
155
|
npx expo install react-native-view-shot # v4+ on Expo SDK 55; v5+ for Fabric / New Architecture
|
|
155
156
|
```
|
|
156
157
|
|
|
157
|
-
> **Masking sensitive screens.** `captureScreen()` grabs whatever is on screen. The preview + Remove control is the reporter's consent gate — finance apps can keep screenshots on with a custom caption instead of disabling capture entirely. For screens that must never be photographed, set `capture: { screenshot: false }` while they're focused, or use `expo-screen-capture` to mark the view secure. Full doc: [`docs/SDK_SCREENSHOT_PREVIEW.md`](
|
|
158
|
+
> **Masking sensitive screens.** `captureScreen()` grabs whatever is on screen. The preview + Remove control is the reporter's consent gate — finance apps can keep screenshots on with a custom caption instead of disabling capture entirely. For screens that must never be photographed, set `capture: { screenshot: false }` while they're focused, or use `expo-screen-capture` to mark the view secure. Full doc: [`docs/SDK_SCREENSHOT_PREVIEW.md`](https://github.com/kensaurus/mushi-mushi/blob/master/docs/SDK_SCREENSHOT_PREVIEW.md).
|
|
158
159
|
|
|
159
160
|
> **Metro / Hermes hosts.** Optional peers (`react-native-view-shot`, `@react-native-community/netinfo`, `expo-sensors`) load with a literal `require()` inside `try/catch`, which Metro treats as optional. To skip loading entirely, pass them in: `<MushiProvider netInfo={NetInfo} viewShot={ViewShot} expoSensors={ExpoSensors}>`. Versions 0.21–0.23 shipped an esbuild `__require()` shim that crashed under Metro and needed a postinstall patch; drop that patch when you upgrade.
|
|
160
161
|
|
|
@@ -189,7 +190,7 @@ Mushi stores only a SHA-256 hash of the email (the host app owns the raw PII) an
|
|
|
189
190
|
See the full [CHANGELOG](https://github.com/kensaurus/mushi-mushi/blob/master/packages/react-native/CHANGELOG.md).
|
|
190
191
|
|
|
191
192
|
Maintainers: report ingest contract and empty-state semantics are documented in
|
|
192
|
-
[`docs/report-ingest-contract.md`](
|
|
193
|
+
[`docs/report-ingest-contract.md`](https://github.com/kensaurus/mushi-mushi/blob/master/docs/report-ingest-contract.md).
|
|
193
194
|
|
|
194
195
|
## License
|
|
195
196
|
|
|
@@ -199,4 +200,4 @@ MIT
|
|
|
199
200
|
<!-- mushi-readme-stats-footer -->
|
|
200
201
|
---
|
|
201
202
|
|
|
202
|
-
<sub>Monorepo scale (July 2026):
|
|
203
|
+
<sub>Monorepo scale (July 2026): 76 edge functions · 509 SQL migrations · 13 outbound plugins · 11 inbound adapters · 19 pipeline agents. Canonical counts: <a href="https://github.com/kensaurus/mushi-mushi/blob/master/docs/stats.md">docs/stats.md</a> · <code>pnpm docs-stats</code></sub>
|
package/dist/index.cjs
CHANGED
|
@@ -2469,7 +2469,7 @@ function createRNSessionTracker(opts) {
|
|
|
2469
2469
|
|
|
2470
2470
|
// src/version.ts
|
|
2471
2471
|
var MUSHI_SDK_PACKAGE = "@mushi-mushi/react-native";
|
|
2472
|
-
var MUSHI_SDK_VERSION = "0.24.
|
|
2472
|
+
var MUSHI_SDK_VERSION = "0.24.4" ? "0.24.4" : "0.17.0";
|
|
2473
2473
|
|
|
2474
2474
|
// src/provider.tsx
|
|
2475
2475
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
package/dist/index.js
CHANGED
|
@@ -2499,7 +2499,7 @@ function createRNSessionTracker(opts) {
|
|
|
2499
2499
|
|
|
2500
2500
|
// src/version.ts
|
|
2501
2501
|
var MUSHI_SDK_PACKAGE = "@mushi-mushi/react-native";
|
|
2502
|
-
var MUSHI_SDK_VERSION = "0.24.
|
|
2502
|
+
var MUSHI_SDK_VERSION = "0.24.4" ? "0.24.4" : "0.17.0";
|
|
2503
2503
|
|
|
2504
2504
|
// src/provider.tsx
|
|
2505
2505
|
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mushi-mushi/react-native",
|
|
3
|
-
"version": "0.24.
|
|
3
|
+
"version": "0.24.4",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Bug report widget for React Native and Expo. The bug mediator for AI-built apps: plain-English diagnosis + a ready fix, in your editor.",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
7
7
|
"module": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@mushi-mushi/
|
|
41
|
-
"@mushi-mushi/
|
|
40
|
+
"@mushi-mushi/web": "^1.33.3",
|
|
41
|
+
"@mushi-mushi/core": "^1.33.3"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@size-limit/file": "^12.1.0",
|
|
@@ -50,8 +50,8 @@
|
|
|
50
50
|
"tsup": "^8.5.1",
|
|
51
51
|
"typescript": "^6.0.3",
|
|
52
52
|
"vitest": "^4.1.9",
|
|
53
|
-
"
|
|
54
|
-
"
|
|
53
|
+
"eslint-plugin-mushi-mushi": "0.3.6",
|
|
54
|
+
"@mushi-mushi/eslint-config": "0.0.0"
|
|
55
55
|
},
|
|
56
56
|
"author": "Kenji Sakuramoto <kensaurus@gmail.com> (https://github.com/kensaurus)",
|
|
57
57
|
"repository": {
|