@mushi-mushi/mcp 0.29.1 → 0.29.2

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/README.md CHANGED
@@ -9,6 +9,8 @@
9
9
 
10
10
  The [Model Context Protocol](https://modelcontextprotocol.io/) server for [Mushi Mushi](https://github.com/kensaurus/mushi-mushi). It lets Cursor, Claude Code, VS Code or any MCP client read your app's bug reports, get a plain-English diagnosis with a fix to start from, and dispatch or merge fixes. Your editor's own model does the work, so you need no second LLM key.
11
11
 
12
+ Docs: [MCP guide](https://kensaur.us/mushi-mushi/docs/sdks/mcp) · [tool reference](https://kensaur.us/mushi-mushi/docs/sdks/mcp-tools)
13
+
12
14
  ```mermaid
13
15
  flowchart LR
14
16
  A["Bug reports<br/>in Mushi"] --> B["This MCP server"] --> C["Your editor<br/>'what's broken in prod?'"] --> D["Fix: you, or a<br/>draft PR from an agent"]
@@ -29,7 +31,7 @@ Restart the editor and ask *"what's broken in prod?"*. For Cursor and Claude, `s
29
31
  "mcpServers": {
30
32
  "mushi-mushi": {
31
33
  "command": "npx",
32
- "args": ["-y", "@mushi-mushi/mcp@0.29.1"],
34
+ "args": ["-y", "@mushi-mushi/mcp@0.29.2"],
33
35
  "env": {
34
36
  "MUSHI_API_KEY": "mushi_xxxxxxxxxxxxxxxxxxxx",
35
37
  "MUSHI_PROJECT_ID": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
package/dist/clients.d.ts CHANGED
@@ -49,7 +49,7 @@ import { FeatureGroup } from './feature-groups.js';
49
49
  * editor launch. Synced to package.json by `scripts/sync-mcp-pin.mjs` — never
50
50
  * hand-edit the version.
51
51
  */
52
- declare const MCP_PIN_SPEC = "@mushi-mushi/mcp@0.29.1";
52
+ declare const MCP_PIN_SPEC = "@mushi-mushi/mcp@0.29.2";
53
53
  interface StdioConfig {
54
54
  command: string;
55
55
  args: string[];
package/dist/clients.js CHANGED
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-7RWHDJPZ.js";
9
9
 
10
10
  // src/clients.ts
11
- var MCP_PIN_SPEC = "@mushi-mushi/mcp@0.29.1";
11
+ var MCP_PIN_SPEC = "@mushi-mushi/mcp@0.29.2";
12
12
  var PIN_SPEC_RE = /^@mushi-mushi\/mcp@\d+\.\d+\.\d+$/;
13
13
  function pinOf(pinSpec) {
14
14
  return pinSpec && PIN_SPEC_RE.test(pinSpec) ? pinSpec : MCP_PIN_SPEC;
package/dist/index.js CHANGED
@@ -1861,6 +1861,15 @@ var MUSHI_DOCS_INDEX = [
1861
1861
  headings: ["What you see", "Data source", "Related"],
1862
1862
  excerpt: "The Overview page is the organization-wide portfolio view \u2014 seven-day activity and open tickets for every connected project at a glance."
1863
1863
  },
1864
+ {
1865
+ title: "Pipeline",
1866
+ url: docUrl("/admin/pipeline"),
1867
+ route: "/admin/pipeline",
1868
+ markdown: "admin/pipeline.md",
1869
+ keywords: ["admin", "pipeline"],
1870
+ headings: ["Stages", "Who opens fixes", "Stuck groups", "Release trains", "Intake and deploys"],
1871
+ excerpt: "The console Pipeline page shows every bug from report to deploy, where it is stuck and why, with one-click fixes."
1872
+ },
1864
1873
  {
1865
1874
  title: "Portfolio",
1866
1875
  url: docUrl("/admin/portfolio"),
@@ -2686,8 +2695,8 @@ var MUSHI_DOCS_INDEX = [
2686
2695
  route: "/plugins/bugsnag",
2687
2696
  markdown: "plugins/bugsnag.md",
2688
2697
  keywords: ["plugins", "bugsnag"],
2689
- headings: ["Setup", "Package", "Events"],
2690
- excerpt: "Mirror Mushi bug reports into Bugsnag and close the Bugsnag error when the fix PR merges \u2014 install from the marketplace and map release stages."
2698
+ headings: ["Setup (self-hosted Mushi)", "Package", "Events"],
2699
+ excerpt: "Copy triaged Mushi bug reports into Bugsnag and mark the error fixed when Mushi applies a fix \u2014 a self-hosted plugin with a Data API token."
2691
2700
  },
2692
2701
  {
2693
2702
  title: "Building a plugin",
@@ -2704,8 +2713,8 @@ var MUSHI_DOCS_INDEX = [
2704
2713
  route: "/plugins/crashlytics",
2705
2714
  markdown: "plugins/crashlytics.md",
2706
2715
  keywords: ["plugins", "crashlytics"],
2707
- headings: ["Setup", "Package", "Events"],
2708
- excerpt: "Push Mushi mobile bug reports into Firebase Crashlytics issues and close them when fixes merge \u2014 service account setup and app ID mapping."
2716
+ headings: ["Setup (self-hosted Mushi)", "Package", "Events"],
2717
+ excerpt: "Flag fixed Mushi reports in Firebase Remote Config so your mobile app can hide stale crash notices \u2014 a self-hosted plugin with a Google access token."
2709
2718
  },
2710
2719
  {
2711
2720
  title: "Cursor Cloud Agent",
@@ -2713,7 +2722,7 @@ var MUSHI_DOCS_INDEX = [
2713
2722
  route: "/plugins/cursor-cloud",
2714
2723
  markdown: "plugins/cursor-cloud.md",
2715
2724
  keywords: ["plugins", "cursor-cloud", "cursor", "cloud", "agent"],
2716
- headings: ["Prerequisites", "Setup", "Behaviour", "Fixes view integration", "Common tasks", "Limiting dispatch to critical reports only", "Triggering manually", "Reviewing what the agent did"],
2725
+ headings: ["Prerequisites", "Setup", "Behaviour", "Fixes view integration", "Common tasks", "Which reports start an agent", "Triggering manually", "Reviewing what the agent did"],
2717
2726
  excerpt: "Dispatch a Cursor Cloud Agent automatically when a Mushi report qualifies \u2014 it investigates, drafts a fix and opens a PR that links back to Mushi."
2718
2727
  },
2719
2728
  {
@@ -2722,8 +2731,8 @@ var MUSHI_DOCS_INDEX = [
2722
2731
  route: "/plugins/discord",
2723
2732
  markdown: "plugins/discord.md",
2724
2733
  keywords: ["plugins", "discord"],
2725
- headings: ["Setup", "Package", "Events"],
2726
- excerpt: "Post Mushi report and fix events to a Discord channel through a webhook \u2014 create the webhook, install the plugin, and choose which events to send."
2734
+ headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
2735
+ excerpt: "Post Mushi report and fix events to a Discord channel \u2014 paste a channel webhook on the Integrations page, or run the self-hosted Discord plugin."
2727
2736
  },
2728
2737
  {
2729
2738
  title: "Webhook events",
@@ -2740,8 +2749,8 @@ var MUSHI_DOCS_INDEX = [
2740
2749
  route: "/plugins/github-issues",
2741
2750
  markdown: "plugins/github-issues.md",
2742
2751
  keywords: ["plugins", "github-issues", "github", "issues"],
2743
- headings: ["Setup", "Package", "Events"],
2744
- excerpt: "Open a labelled GitHub issue for every classified Mushi report, with a link back to the report \u2014 target repo, default labels and assignee settings."
2752
+ headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
2753
+ excerpt: "Open a GitHub issue for every triaged Mushi report and close it when the fix lands \u2014 set it up on the Integrations page, or self-host the plugin."
2745
2754
  },
2746
2755
  {
2747
2756
  title: "Jira Cloud",
@@ -2749,8 +2758,8 @@ var MUSHI_DOCS_INDEX = [
2749
2758
  route: "/plugins/jira",
2750
2759
  markdown: "plugins/jira.md",
2751
2760
  keywords: ["plugins", "jira", "cloud"],
2752
- headings: ["Setup", "Package", "Events"],
2753
- excerpt: "Two-way sync between Mushi reports and Jira Cloud issues \u2014 create issues on classification, sync status, and comment fix summaries when fixes land."
2761
+ headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
2762
+ excerpt: "Open Jira Cloud issues from Mushi bug reports and keep their status in step \u2014 set it up on the Integrations page, or self-host the Jira plugin."
2754
2763
  },
2755
2764
  {
2756
2765
  title: "Linear",
@@ -2758,8 +2767,8 @@ var MUSHI_DOCS_INDEX = [
2758
2767
  route: "/plugins/linear",
2759
2768
  markdown: "plugins/linear.md",
2760
2769
  keywords: ["plugins", "linear"],
2761
- headings: ["Setup", "Behaviour", "Label mapping example", "Troubleshooting"],
2762
- excerpt: "File a Linear issue automatically when Mushi classifies a bug report \u2014 create a Linear API key, install the plugin, and choose the team and filters."
2770
+ headings: ["Setup (self-run plugin)", "Behaviour", "Troubleshooting"],
2771
+ excerpt: "File Linear issues from Mushi bug reports \u2014 connect Linear on the Integrations page, or run the self-hosted Linear plugin with an API key and team id."
2763
2772
  },
2764
2773
  {
2765
2774
  title: "Microsoft Teams",
@@ -2767,8 +2776,8 @@ var MUSHI_DOCS_INDEX = [
2767
2776
  route: "/plugins/msteams",
2768
2777
  markdown: "plugins/msteams.md",
2769
2778
  keywords: ["plugins", "msteams", "microsoft", "teams"],
2770
- headings: ["Setup", "Package", "Events"],
2771
- excerpt: "Send Adaptive Cards to a Microsoft Teams channel when Mushi classifies a report or a fix lands \u2014 incoming webhook setup and severity filters."
2779
+ headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
2780
+ excerpt: "Send cards to a Microsoft Teams channel when Mushi triages a report or a fix lands \u2014 paste a webhook on the Integrations page, or self-host the plugin."
2772
2781
  },
2773
2782
  {
2774
2783
  title: "PagerDuty",
@@ -2776,8 +2785,8 @@ var MUSHI_DOCS_INDEX = [
2776
2785
  route: "/plugins/pagerduty",
2777
2786
  markdown: "plugins/pagerduty.md",
2778
2787
  keywords: ["plugins", "pagerduty"],
2779
- headings: ["Setup", "Behaviour", "Troubleshooting"],
2780
- excerpt: "Page your on-call rotation through PagerDuty when a P0 or P1 bug report lands in Mushi \u2014 Events API v2 integration key setup and filters."
2788
+ headings: ["Setup (self-run plugin)", "Behaviour", "Troubleshooting"],
2789
+ excerpt: "Page your on-call rotation through PagerDuty when Mushi triages a bug as critical, and resolve it when the fix lands \u2014 Events API v2 routing key setup."
2781
2790
  },
2782
2791
  {
2783
2792
  title: "Rollbar",
@@ -2785,8 +2794,8 @@ var MUSHI_DOCS_INDEX = [
2785
2794
  route: "/plugins/rollbar",
2786
2795
  markdown: "plugins/rollbar.md",
2787
2796
  keywords: ["plugins", "rollbar"],
2788
- headings: ["Setup", "Package", "Events"],
2789
- excerpt: "Mirror Mushi bug reports into Rollbar items and resolve them when fixes ship \u2014 access token, environment name, and dedup key mapping."
2797
+ headings: ["Setup (self-hosted Mushi)", "Package", "Events"],
2798
+ excerpt: "Copy triaged Mushi bug reports into Rollbar items and resolve them when fixes ship \u2014 a self-hosted plugin with an access token and project id."
2790
2799
  },
2791
2800
  {
2792
2801
  title: "Sentry",
@@ -2794,7 +2803,7 @@ var MUSHI_DOCS_INDEX = [
2794
2803
  route: "/plugins/sentry",
2795
2804
  markdown: "plugins/sentry.md",
2796
2805
  keywords: ["plugins", "sentry"],
2797
- headings: ["Route Sentry errors into Mushi (inbound)", "Setup (outbound plugin)", "Package", "Events"],
2806
+ headings: ["Route Sentry errors into Mushi (inbound)", "Copy Mushi reports into Sentry (outbound plugin)", "Package", "Events"],
2798
2807
  excerpt: "Two-way Sentry integration \u2014 Sentry errors flow into Mushi's queue, merging a Mushi fix resolves the Sentry issue, and critical reports mirror back."
2799
2808
  },
2800
2809
  {
@@ -2803,8 +2812,8 @@ var MUSHI_DOCS_INDEX = [
2803
2812
  route: "/plugins/slack",
2804
2813
  markdown: "plugins/slack.md",
2805
2814
  keywords: ["plugins", "slack", "app"],
2806
- headings: ["Setup", "What's on the card", "Acting from the channel", "Slash commands", "Package", "Events", "Troubleshooting"],
2807
- excerpt: "Triage Mushi bug reports from Slack \u2014 each classified report posts as a card with its root cause and buttons to dispatch a fix, resolve or dismiss."
2815
+ headings: ["Setup", "What's on the card", "Acting from the channel", "Slash commands", "Package", "What gets posted", "Troubleshooting"],
2816
+ excerpt: "Triage Mushi bug reports from Slack \u2014 add the app from the Integrations page, and each report posts as a card with buttons to fix, resolve or dismiss."
2808
2817
  },
2809
2818
  {
2810
2819
  title: "Zapier",
@@ -2812,7 +2821,7 @@ var MUSHI_DOCS_INDEX = [
2812
2821
  route: "/plugins/zapier",
2813
2822
  markdown: "plugins/zapier.md",
2814
2823
  keywords: ["plugins", "zapier"],
2815
- headings: ["Setup", "Signature verification in Zapier", "Common Zaps", "Troubleshooting"],
2824
+ headings: ["Setup (no server)", "Setup (with the relay package)", "Common Zaps", "Troubleshooting"],
2816
2825
  excerpt: "Send every Mushi event to Zapier and on to thousands of apps such as Notion, Google Sheets and HubSpot \u2014 Catch Hook setup and event filters."
2817
2826
  },
2818
2827
  {
@@ -2849,7 +2858,7 @@ var MUSHI_DOCS_INDEX = [
2849
2858
  markdown: "quickstart/angular.md",
2850
2859
  keywords: ["quickstart", "angular"],
2851
2860
  headings: [],
2852
- excerpt: "Add Mushi to an Angular 17+ app \u2014 register the Mushi service and error handler as factory providers so uncaught errors and user bug reports reach your queue."
2861
+ excerpt: "Add Mushi to an Angular 17+ app: one provideMushi() call registers the Mushi service and error handler, so uncaught errors and bug reports reach your queue."
2853
2862
  },
2854
2863
  {
2855
2864
  title: "Capacitor quickstart",
@@ -3011,7 +3020,7 @@ var MUSHI_DOCS_INDEX = [
3011
3020
  markdown: "sdks/angular.md",
3012
3021
  keywords: ["sdks", "angular", "@mushi-mushi/angular"],
3013
3022
  headings: ["API surface", "Setup (standalone bootstrap)", "Submitting a report", "Identifying users"],
3014
- excerpt: "API reference for @mushi-mushi/angular \u2014 MushiService, MushiErrorHandler and the MUSHI_CONFIG token, wired with factory providers in an Angular 17+ app."
3023
+ excerpt: "API reference for @mushi-mushi/angular \u2014 provideMushi(), MushiService, MushiErrorHandler and the MUSHI_CONFIG token in an Angular 17+ app."
3015
3024
  },
3016
3025
  {
3017
3026
  title: "In-SDK Ask assistant",
@@ -3055,7 +3064,7 @@ var MUSHI_DOCS_INDEX = [
3055
3064
  route: "/sdks/core",
3056
3065
  markdown: "sdks/core.md",
3057
3066
  keywords: ["sdks", "core", "@mushi-mushi/core"],
3058
- headings: ["Install", "API", "Mushi.init(config) (web) / MushiProvider (React Native)", "MushiWidgetConfig (selected keys)", "submitReport(input)", "flushOfflineQueueNow()", "PII scrubbing utilities (1.27+)", "Region resolution"],
3067
+ headings: ["Install", "API", "Mushi.init(config) (web) / MushiProvider (React Native)", "MushiWidgetConfig (selected keys)", "captureEvent(input)", "Offline queue", "PII scrubbing utilities (1.27+)", "Region resolution"],
3059
3068
  excerpt: "Reference for @mushi-mushi/core \u2014 the MushiConfig shape, widget options, PII scrubbing helpers and region resolution shared by every Mushi JavaScript SDK."
3060
3069
  },
3061
3070
  {
@@ -3064,7 +3073,7 @@ var MUSHI_DOCS_INDEX = [
3064
3073
  route: "/sdks/eslint-plugin",
3065
3074
  markdown: "sdks/eslint-plugin.md",
3066
3075
  keywords: ["sdks", "eslint-plugin", "eslint", "plugin", "eslint-plugin-mushi-mushi"],
3067
- headings: ["Install", "Recommended preset", "Rules", "mushi-mushi/no-dead-handler", "mushi-mushi/no-mock-leak", "Combining with the gates action"],
3076
+ headings: ["Install", "Turn on the two rules", "The recommended preset", "Rules", "mushi-mushi/no-dead-handler", "mushi-mushi/no-mock-leak", "In CI"],
3068
3077
  excerpt: "eslint-plugin-mushi-mushi flags empty event handlers and leftover mock data in production code \u2014 the no-dead-handler and no-mock-leak rules and preset."
3069
3078
  },
3070
3079
  {
@@ -3101,7 +3110,7 @@ var MUSHI_DOCS_INDEX = [
3101
3110
  markdown: "sdks/inventory-schema.md",
3102
3111
  keywords: ["sdks", "inventory-schema", "inventory", "schema", "@mushi-mushi/inventory-schema"],
3103
3112
  headings: ["Install", "What inventory.yaml looks like", "Programmatic use", "JSON Schema"],
3104
- excerpt: "The Zod schema, JSON Schema and TypeScript types for inventory.yaml \u2014 the contract that Mushi's gates, crawler, ESLint plugin and CLI all read."
3113
+ excerpt: "The Zod schema, JSON Schema and TypeScript types for inventory.yaml: your app's pages, the buttons and forms on each, what they do, and the tests that prove it."
3105
3114
  },
3106
3115
  {
3107
3116
  title: "MushiMushi (iOS)",
@@ -3127,7 +3136,7 @@ var MUSHI_DOCS_INDEX = [
3127
3136
  route: "/sdks/mcp",
3128
3137
  markdown: "sdks/mcp.md",
3129
3138
  keywords: ["sdks", "mcp", "bug", "report", "server", "cursor", "claude", "code", "@mushi-mushi/mcp"],
3130
- headings: ["Two transports", "Spec traceability for dispatchfix"],
3139
+ headings: ["Quick start", "Two transports", "Spec traceability for dispatchfix"],
3131
3140
  excerpt: "Reference for @mushi-mushi/mcp, the Mushi MCP server for Cursor, Claude Code, VS Code and Windsurf \u2014 stdio and hosted HTTP transports, scopes and setup."
3132
3141
  },
3133
3142
  {
@@ -3136,8 +3145,8 @@ var MUSHI_DOCS_INDEX = [
3136
3145
  route: "/sdks/mcp-ci",
3137
3146
  markdown: "sdks/mcp-ci.md",
3138
3147
  keywords: ["sdks", "mcp-ci", "mcp", "@mushi-mushi/mcp-ci"],
3139
- headings: ["Quick start", "Commands", "In your IDE", "Inputs"],
3140
- excerpt: "@mushi-mushi/mcp-ci is Mushi's GitHub Action \u2014 run the five-gate composite check on pull requests, draft inventory entries, and bootstrap crawler auth."
3148
+ headings: ["Quick start", "Gates on every PR", "Commands", "In your IDE", "Inputs", "Outputs"],
3149
+ excerpt: "@mushi-mushi/mcp-ci is Mushi's GitHub Action: fail a PR while reports wait for triage, dispatch a fix, run the pre-release gates and refresh crawler sign-in."
3141
3150
  },
3142
3151
  {
3143
3152
  title: "MCP tools reference",
@@ -3172,7 +3181,7 @@ var MUSHI_DOCS_INDEX = [
3172
3181
  route: "/sdks/node",
3173
3182
  markdown: "sdks/node.md",
3174
3183
  keywords: ["sdks", "node", "node.js", "server", "error", "reporting", "sdk", "@mushi-mushi/node"],
3175
- headings: ["Install", "Express", "Fastify", "Hono", "Process-level fallbacks", "Programmatic submit", "PII and credential scrubbing"],
3184
+ headings: ["Install", "Create a client", "Express", "Fastify", "Hono", "Process-level fallbacks", "Programmatic submit", "PII and credential scrubbing"],
3176
3185
  excerpt: "Report server errors from Node with @mushi-mushi/node \u2014 Express, Fastify and Hono error handlers that tag each report with route, request ID and user."
3177
3186
  },
3178
3187
  {
@@ -3182,7 +3191,7 @@ var MUSHI_DOCS_INDEX = [
3182
3191
  markdown: "sdks/plugin-sdk.md",
3183
3192
  keywords: ["sdks", "plugin-sdk", "plugin", "sdk", "@mushi-mushi/plugin-sdk"],
3184
3193
  headings: ["Install", "Express adapter", "Hono adapter", "Verify a signature manually", "Wire format", "See also"],
3185
- excerpt: "Build a Mushi plugin in TypeScript with @mushi-mushi/plugin-sdk \u2014 verify webhook signatures, dedupe deliveries and handle lifecycle events in Express."
3194
+ excerpt: "Build a Mushi plugin in TypeScript with @mushi-mushi/plugin-sdk \u2014 verify webhook signatures, dedupe deliveries and handle lifecycle events in Express or Hono."
3186
3195
  },
3187
3196
  {
3188
3197
  title: "SDK presets",
@@ -3238,6 +3247,15 @@ var MUSHI_DOCS_INDEX = [
3238
3247
  headings: ["API surface", "Setup", "Submitting a report"],
3239
3248
  excerpt: "Reference for @mushi-mushi/svelte \u2014 initMushi, getMushi and the SvelteKit error hooks that forward client and server errors to your Mushi queue."
3240
3249
  },
3250
+ {
3251
+ title: "@mushi-mushi/ux",
3252
+ url: docUrl("/sdks/ux"),
3253
+ route: "/sdks/ux",
3254
+ markdown: "sdks/ux.md",
3255
+ keywords: ["sdks", "ux", "@mushi-mushi/ux"],
3256
+ headings: ["Quick start", "From studio to merge", "What a run does", "Safety", "Agents", "Commands", "Audit and explore signed-in screens", "On GitHub Actions"],
3257
+ excerpt: "@mushi-mushi/ux runs your coding agent over each screen of your app, measures every change and keeps only the ones that help, on a branch you review."
3258
+ },
3241
3259
  {
3242
3260
  title: "@mushi-mushi/vue",
3243
3261
  url: docUrl("/sdks/vue"),
@@ -3253,8 +3271,8 @@ var MUSHI_DOCS_INDEX = [
3253
3271
  route: "/sdks/wasm-classifier",
3254
3272
  markdown: "sdks/wasm-classifier.md",
3255
3273
  keywords: ["sdks", "wasm-classifier", "wasm", "classifier", "@mushi-mushi/wasm-classifier"],
3256
- headings: [],
3257
- excerpt: "@mushi-mushi/wasm-classifier runs a small on-device model in the browser to drop junk bug reports before they reach your LLM, cutting classification cost."
3274
+ headings: ["Use it with the web SDK", "Call it directly", "ONNX backend (experimental)"],
3275
+ excerpt: "@mushi-mushi/wasm-classifier filters junk bug reports in the browser, before they reach the server or your LLM."
3258
3276
  },
3259
3277
  {
3260
3278
  title: "JavaScript bug reporting SDK for the browser",
package/dist/server.js CHANGED
@@ -404,6 +404,15 @@ var MUSHI_DOCS_INDEX = [
404
404
  headings: ["What you see", "Data source", "Related"],
405
405
  excerpt: "The Overview page is the organization-wide portfolio view \u2014 seven-day activity and open tickets for every connected project at a glance."
406
406
  },
407
+ {
408
+ title: "Pipeline",
409
+ url: docUrl("/admin/pipeline"),
410
+ route: "/admin/pipeline",
411
+ markdown: "admin/pipeline.md",
412
+ keywords: ["admin", "pipeline"],
413
+ headings: ["Stages", "Who opens fixes", "Stuck groups", "Release trains", "Intake and deploys"],
414
+ excerpt: "The console Pipeline page shows every bug from report to deploy, where it is stuck and why, with one-click fixes."
415
+ },
407
416
  {
408
417
  title: "Portfolio",
409
418
  url: docUrl("/admin/portfolio"),
@@ -1229,8 +1238,8 @@ var MUSHI_DOCS_INDEX = [
1229
1238
  route: "/plugins/bugsnag",
1230
1239
  markdown: "plugins/bugsnag.md",
1231
1240
  keywords: ["plugins", "bugsnag"],
1232
- headings: ["Setup", "Package", "Events"],
1233
- excerpt: "Mirror Mushi bug reports into Bugsnag and close the Bugsnag error when the fix PR merges \u2014 install from the marketplace and map release stages."
1241
+ headings: ["Setup (self-hosted Mushi)", "Package", "Events"],
1242
+ excerpt: "Copy triaged Mushi bug reports into Bugsnag and mark the error fixed when Mushi applies a fix \u2014 a self-hosted plugin with a Data API token."
1234
1243
  },
1235
1244
  {
1236
1245
  title: "Building a plugin",
@@ -1247,8 +1256,8 @@ var MUSHI_DOCS_INDEX = [
1247
1256
  route: "/plugins/crashlytics",
1248
1257
  markdown: "plugins/crashlytics.md",
1249
1258
  keywords: ["plugins", "crashlytics"],
1250
- headings: ["Setup", "Package", "Events"],
1251
- excerpt: "Push Mushi mobile bug reports into Firebase Crashlytics issues and close them when fixes merge \u2014 service account setup and app ID mapping."
1259
+ headings: ["Setup (self-hosted Mushi)", "Package", "Events"],
1260
+ excerpt: "Flag fixed Mushi reports in Firebase Remote Config so your mobile app can hide stale crash notices \u2014 a self-hosted plugin with a Google access token."
1252
1261
  },
1253
1262
  {
1254
1263
  title: "Cursor Cloud Agent",
@@ -1256,7 +1265,7 @@ var MUSHI_DOCS_INDEX = [
1256
1265
  route: "/plugins/cursor-cloud",
1257
1266
  markdown: "plugins/cursor-cloud.md",
1258
1267
  keywords: ["plugins", "cursor-cloud", "cursor", "cloud", "agent"],
1259
- headings: ["Prerequisites", "Setup", "Behaviour", "Fixes view integration", "Common tasks", "Limiting dispatch to critical reports only", "Triggering manually", "Reviewing what the agent did"],
1268
+ headings: ["Prerequisites", "Setup", "Behaviour", "Fixes view integration", "Common tasks", "Which reports start an agent", "Triggering manually", "Reviewing what the agent did"],
1260
1269
  excerpt: "Dispatch a Cursor Cloud Agent automatically when a Mushi report qualifies \u2014 it investigates, drafts a fix and opens a PR that links back to Mushi."
1261
1270
  },
1262
1271
  {
@@ -1265,8 +1274,8 @@ var MUSHI_DOCS_INDEX = [
1265
1274
  route: "/plugins/discord",
1266
1275
  markdown: "plugins/discord.md",
1267
1276
  keywords: ["plugins", "discord"],
1268
- headings: ["Setup", "Package", "Events"],
1269
- excerpt: "Post Mushi report and fix events to a Discord channel through a webhook \u2014 create the webhook, install the plugin, and choose which events to send."
1277
+ headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
1278
+ excerpt: "Post Mushi report and fix events to a Discord channel \u2014 paste a channel webhook on the Integrations page, or run the self-hosted Discord plugin."
1270
1279
  },
1271
1280
  {
1272
1281
  title: "Webhook events",
@@ -1283,8 +1292,8 @@ var MUSHI_DOCS_INDEX = [
1283
1292
  route: "/plugins/github-issues",
1284
1293
  markdown: "plugins/github-issues.md",
1285
1294
  keywords: ["plugins", "github-issues", "github", "issues"],
1286
- headings: ["Setup", "Package", "Events"],
1287
- excerpt: "Open a labelled GitHub issue for every classified Mushi report, with a link back to the report \u2014 target repo, default labels and assignee settings."
1295
+ headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
1296
+ excerpt: "Open a GitHub issue for every triaged Mushi report and close it when the fix lands \u2014 set it up on the Integrations page, or self-host the plugin."
1288
1297
  },
1289
1298
  {
1290
1299
  title: "Jira Cloud",
@@ -1292,8 +1301,8 @@ var MUSHI_DOCS_INDEX = [
1292
1301
  route: "/plugins/jira",
1293
1302
  markdown: "plugins/jira.md",
1294
1303
  keywords: ["plugins", "jira", "cloud"],
1295
- headings: ["Setup", "Package", "Events"],
1296
- excerpt: "Two-way sync between Mushi reports and Jira Cloud issues \u2014 create issues on classification, sync status, and comment fix summaries when fixes land."
1304
+ headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
1305
+ excerpt: "Open Jira Cloud issues from Mushi bug reports and keep their status in step \u2014 set it up on the Integrations page, or self-host the Jira plugin."
1297
1306
  },
1298
1307
  {
1299
1308
  title: "Linear",
@@ -1301,8 +1310,8 @@ var MUSHI_DOCS_INDEX = [
1301
1310
  route: "/plugins/linear",
1302
1311
  markdown: "plugins/linear.md",
1303
1312
  keywords: ["plugins", "linear"],
1304
- headings: ["Setup", "Behaviour", "Label mapping example", "Troubleshooting"],
1305
- excerpt: "File a Linear issue automatically when Mushi classifies a bug report \u2014 create a Linear API key, install the plugin, and choose the team and filters."
1313
+ headings: ["Setup (self-run plugin)", "Behaviour", "Troubleshooting"],
1314
+ excerpt: "File Linear issues from Mushi bug reports \u2014 connect Linear on the Integrations page, or run the self-hosted Linear plugin with an API key and team id."
1306
1315
  },
1307
1316
  {
1308
1317
  title: "Microsoft Teams",
@@ -1310,8 +1319,8 @@ var MUSHI_DOCS_INDEX = [
1310
1319
  route: "/plugins/msteams",
1311
1320
  markdown: "plugins/msteams.md",
1312
1321
  keywords: ["plugins", "msteams", "microsoft", "teams"],
1313
- headings: ["Setup", "Package", "Events"],
1314
- excerpt: "Send Adaptive Cards to a Microsoft Teams channel when Mushi classifies a report or a fix lands \u2014 incoming webhook setup and severity filters."
1322
+ headings: ["Setup (Mushi Cloud, no code)", "Self-hosted plugin"],
1323
+ excerpt: "Send cards to a Microsoft Teams channel when Mushi triages a report or a fix lands \u2014 paste a webhook on the Integrations page, or self-host the plugin."
1315
1324
  },
1316
1325
  {
1317
1326
  title: "PagerDuty",
@@ -1319,8 +1328,8 @@ var MUSHI_DOCS_INDEX = [
1319
1328
  route: "/plugins/pagerduty",
1320
1329
  markdown: "plugins/pagerduty.md",
1321
1330
  keywords: ["plugins", "pagerduty"],
1322
- headings: ["Setup", "Behaviour", "Troubleshooting"],
1323
- excerpt: "Page your on-call rotation through PagerDuty when a P0 or P1 bug report lands in Mushi \u2014 Events API v2 integration key setup and filters."
1331
+ headings: ["Setup (self-run plugin)", "Behaviour", "Troubleshooting"],
1332
+ excerpt: "Page your on-call rotation through PagerDuty when Mushi triages a bug as critical, and resolve it when the fix lands \u2014 Events API v2 routing key setup."
1324
1333
  },
1325
1334
  {
1326
1335
  title: "Rollbar",
@@ -1328,8 +1337,8 @@ var MUSHI_DOCS_INDEX = [
1328
1337
  route: "/plugins/rollbar",
1329
1338
  markdown: "plugins/rollbar.md",
1330
1339
  keywords: ["plugins", "rollbar"],
1331
- headings: ["Setup", "Package", "Events"],
1332
- excerpt: "Mirror Mushi bug reports into Rollbar items and resolve them when fixes ship \u2014 access token, environment name, and dedup key mapping."
1340
+ headings: ["Setup (self-hosted Mushi)", "Package", "Events"],
1341
+ excerpt: "Copy triaged Mushi bug reports into Rollbar items and resolve them when fixes ship \u2014 a self-hosted plugin with an access token and project id."
1333
1342
  },
1334
1343
  {
1335
1344
  title: "Sentry",
@@ -1337,7 +1346,7 @@ var MUSHI_DOCS_INDEX = [
1337
1346
  route: "/plugins/sentry",
1338
1347
  markdown: "plugins/sentry.md",
1339
1348
  keywords: ["plugins", "sentry"],
1340
- headings: ["Route Sentry errors into Mushi (inbound)", "Setup (outbound plugin)", "Package", "Events"],
1349
+ headings: ["Route Sentry errors into Mushi (inbound)", "Copy Mushi reports into Sentry (outbound plugin)", "Package", "Events"],
1341
1350
  excerpt: "Two-way Sentry integration \u2014 Sentry errors flow into Mushi's queue, merging a Mushi fix resolves the Sentry issue, and critical reports mirror back."
1342
1351
  },
1343
1352
  {
@@ -1346,8 +1355,8 @@ var MUSHI_DOCS_INDEX = [
1346
1355
  route: "/plugins/slack",
1347
1356
  markdown: "plugins/slack.md",
1348
1357
  keywords: ["plugins", "slack", "app"],
1349
- headings: ["Setup", "What's on the card", "Acting from the channel", "Slash commands", "Package", "Events", "Troubleshooting"],
1350
- excerpt: "Triage Mushi bug reports from Slack \u2014 each classified report posts as a card with its root cause and buttons to dispatch a fix, resolve or dismiss."
1358
+ headings: ["Setup", "What's on the card", "Acting from the channel", "Slash commands", "Package", "What gets posted", "Troubleshooting"],
1359
+ excerpt: "Triage Mushi bug reports from Slack \u2014 add the app from the Integrations page, and each report posts as a card with buttons to fix, resolve or dismiss."
1351
1360
  },
1352
1361
  {
1353
1362
  title: "Zapier",
@@ -1355,7 +1364,7 @@ var MUSHI_DOCS_INDEX = [
1355
1364
  route: "/plugins/zapier",
1356
1365
  markdown: "plugins/zapier.md",
1357
1366
  keywords: ["plugins", "zapier"],
1358
- headings: ["Setup", "Signature verification in Zapier", "Common Zaps", "Troubleshooting"],
1367
+ headings: ["Setup (no server)", "Setup (with the relay package)", "Common Zaps", "Troubleshooting"],
1359
1368
  excerpt: "Send every Mushi event to Zapier and on to thousands of apps such as Notion, Google Sheets and HubSpot \u2014 Catch Hook setup and event filters."
1360
1369
  },
1361
1370
  {
@@ -1392,7 +1401,7 @@ var MUSHI_DOCS_INDEX = [
1392
1401
  markdown: "quickstart/angular.md",
1393
1402
  keywords: ["quickstart", "angular"],
1394
1403
  headings: [],
1395
- excerpt: "Add Mushi to an Angular 17+ app \u2014 register the Mushi service and error handler as factory providers so uncaught errors and user bug reports reach your queue."
1404
+ excerpt: "Add Mushi to an Angular 17+ app: one provideMushi() call registers the Mushi service and error handler, so uncaught errors and bug reports reach your queue."
1396
1405
  },
1397
1406
  {
1398
1407
  title: "Capacitor quickstart",
@@ -1554,7 +1563,7 @@ var MUSHI_DOCS_INDEX = [
1554
1563
  markdown: "sdks/angular.md",
1555
1564
  keywords: ["sdks", "angular", "@mushi-mushi/angular"],
1556
1565
  headings: ["API surface", "Setup (standalone bootstrap)", "Submitting a report", "Identifying users"],
1557
- excerpt: "API reference for @mushi-mushi/angular \u2014 MushiService, MushiErrorHandler and the MUSHI_CONFIG token, wired with factory providers in an Angular 17+ app."
1566
+ excerpt: "API reference for @mushi-mushi/angular \u2014 provideMushi(), MushiService, MushiErrorHandler and the MUSHI_CONFIG token in an Angular 17+ app."
1558
1567
  },
1559
1568
  {
1560
1569
  title: "In-SDK Ask assistant",
@@ -1598,7 +1607,7 @@ var MUSHI_DOCS_INDEX = [
1598
1607
  route: "/sdks/core",
1599
1608
  markdown: "sdks/core.md",
1600
1609
  keywords: ["sdks", "core", "@mushi-mushi/core"],
1601
- headings: ["Install", "API", "Mushi.init(config) (web) / MushiProvider (React Native)", "MushiWidgetConfig (selected keys)", "submitReport(input)", "flushOfflineQueueNow()", "PII scrubbing utilities (1.27+)", "Region resolution"],
1610
+ headings: ["Install", "API", "Mushi.init(config) (web) / MushiProvider (React Native)", "MushiWidgetConfig (selected keys)", "captureEvent(input)", "Offline queue", "PII scrubbing utilities (1.27+)", "Region resolution"],
1602
1611
  excerpt: "Reference for @mushi-mushi/core \u2014 the MushiConfig shape, widget options, PII scrubbing helpers and region resolution shared by every Mushi JavaScript SDK."
1603
1612
  },
1604
1613
  {
@@ -1607,7 +1616,7 @@ var MUSHI_DOCS_INDEX = [
1607
1616
  route: "/sdks/eslint-plugin",
1608
1617
  markdown: "sdks/eslint-plugin.md",
1609
1618
  keywords: ["sdks", "eslint-plugin", "eslint", "plugin", "eslint-plugin-mushi-mushi"],
1610
- headings: ["Install", "Recommended preset", "Rules", "mushi-mushi/no-dead-handler", "mushi-mushi/no-mock-leak", "Combining with the gates action"],
1619
+ headings: ["Install", "Turn on the two rules", "The recommended preset", "Rules", "mushi-mushi/no-dead-handler", "mushi-mushi/no-mock-leak", "In CI"],
1611
1620
  excerpt: "eslint-plugin-mushi-mushi flags empty event handlers and leftover mock data in production code \u2014 the no-dead-handler and no-mock-leak rules and preset."
1612
1621
  },
1613
1622
  {
@@ -1644,7 +1653,7 @@ var MUSHI_DOCS_INDEX = [
1644
1653
  markdown: "sdks/inventory-schema.md",
1645
1654
  keywords: ["sdks", "inventory-schema", "inventory", "schema", "@mushi-mushi/inventory-schema"],
1646
1655
  headings: ["Install", "What inventory.yaml looks like", "Programmatic use", "JSON Schema"],
1647
- excerpt: "The Zod schema, JSON Schema and TypeScript types for inventory.yaml \u2014 the contract that Mushi's gates, crawler, ESLint plugin and CLI all read."
1656
+ excerpt: "The Zod schema, JSON Schema and TypeScript types for inventory.yaml: your app's pages, the buttons and forms on each, what they do, and the tests that prove it."
1648
1657
  },
1649
1658
  {
1650
1659
  title: "MushiMushi (iOS)",
@@ -1670,7 +1679,7 @@ var MUSHI_DOCS_INDEX = [
1670
1679
  route: "/sdks/mcp",
1671
1680
  markdown: "sdks/mcp.md",
1672
1681
  keywords: ["sdks", "mcp", "bug", "report", "server", "cursor", "claude", "code", "@mushi-mushi/mcp"],
1673
- headings: ["Two transports", "Spec traceability for dispatchfix"],
1682
+ headings: ["Quick start", "Two transports", "Spec traceability for dispatchfix"],
1674
1683
  excerpt: "Reference for @mushi-mushi/mcp, the Mushi MCP server for Cursor, Claude Code, VS Code and Windsurf \u2014 stdio and hosted HTTP transports, scopes and setup."
1675
1684
  },
1676
1685
  {
@@ -1679,8 +1688,8 @@ var MUSHI_DOCS_INDEX = [
1679
1688
  route: "/sdks/mcp-ci",
1680
1689
  markdown: "sdks/mcp-ci.md",
1681
1690
  keywords: ["sdks", "mcp-ci", "mcp", "@mushi-mushi/mcp-ci"],
1682
- headings: ["Quick start", "Commands", "In your IDE", "Inputs"],
1683
- excerpt: "@mushi-mushi/mcp-ci is Mushi's GitHub Action \u2014 run the five-gate composite check on pull requests, draft inventory entries, and bootstrap crawler auth."
1691
+ headings: ["Quick start", "Gates on every PR", "Commands", "In your IDE", "Inputs", "Outputs"],
1692
+ excerpt: "@mushi-mushi/mcp-ci is Mushi's GitHub Action: fail a PR while reports wait for triage, dispatch a fix, run the pre-release gates and refresh crawler sign-in."
1684
1693
  },
1685
1694
  {
1686
1695
  title: "MCP tools reference",
@@ -1715,7 +1724,7 @@ var MUSHI_DOCS_INDEX = [
1715
1724
  route: "/sdks/node",
1716
1725
  markdown: "sdks/node.md",
1717
1726
  keywords: ["sdks", "node", "node.js", "server", "error", "reporting", "sdk", "@mushi-mushi/node"],
1718
- headings: ["Install", "Express", "Fastify", "Hono", "Process-level fallbacks", "Programmatic submit", "PII and credential scrubbing"],
1727
+ headings: ["Install", "Create a client", "Express", "Fastify", "Hono", "Process-level fallbacks", "Programmatic submit", "PII and credential scrubbing"],
1719
1728
  excerpt: "Report server errors from Node with @mushi-mushi/node \u2014 Express, Fastify and Hono error handlers that tag each report with route, request ID and user."
1720
1729
  },
1721
1730
  {
@@ -1725,7 +1734,7 @@ var MUSHI_DOCS_INDEX = [
1725
1734
  markdown: "sdks/plugin-sdk.md",
1726
1735
  keywords: ["sdks", "plugin-sdk", "plugin", "sdk", "@mushi-mushi/plugin-sdk"],
1727
1736
  headings: ["Install", "Express adapter", "Hono adapter", "Verify a signature manually", "Wire format", "See also"],
1728
- excerpt: "Build a Mushi plugin in TypeScript with @mushi-mushi/plugin-sdk \u2014 verify webhook signatures, dedupe deliveries and handle lifecycle events in Express."
1737
+ excerpt: "Build a Mushi plugin in TypeScript with @mushi-mushi/plugin-sdk \u2014 verify webhook signatures, dedupe deliveries and handle lifecycle events in Express or Hono."
1729
1738
  },
1730
1739
  {
1731
1740
  title: "SDK presets",
@@ -1781,6 +1790,15 @@ var MUSHI_DOCS_INDEX = [
1781
1790
  headings: ["API surface", "Setup", "Submitting a report"],
1782
1791
  excerpt: "Reference for @mushi-mushi/svelte \u2014 initMushi, getMushi and the SvelteKit error hooks that forward client and server errors to your Mushi queue."
1783
1792
  },
1793
+ {
1794
+ title: "@mushi-mushi/ux",
1795
+ url: docUrl("/sdks/ux"),
1796
+ route: "/sdks/ux",
1797
+ markdown: "sdks/ux.md",
1798
+ keywords: ["sdks", "ux", "@mushi-mushi/ux"],
1799
+ headings: ["Quick start", "From studio to merge", "What a run does", "Safety", "Agents", "Commands", "Audit and explore signed-in screens", "On GitHub Actions"],
1800
+ excerpt: "@mushi-mushi/ux runs your coding agent over each screen of your app, measures every change and keeps only the ones that help, on a branch you review."
1801
+ },
1784
1802
  {
1785
1803
  title: "@mushi-mushi/vue",
1786
1804
  url: docUrl("/sdks/vue"),
@@ -1796,8 +1814,8 @@ var MUSHI_DOCS_INDEX = [
1796
1814
  route: "/sdks/wasm-classifier",
1797
1815
  markdown: "sdks/wasm-classifier.md",
1798
1816
  keywords: ["sdks", "wasm-classifier", "wasm", "classifier", "@mushi-mushi/wasm-classifier"],
1799
- headings: [],
1800
- excerpt: "@mushi-mushi/wasm-classifier runs a small on-device model in the browser to drop junk bug reports before they reach your LLM, cutting classification cost."
1817
+ headings: ["Use it with the web SDK", "Call it directly", "ONNX backend (experimental)"],
1818
+ excerpt: "@mushi-mushi/wasm-classifier filters junk bug reports in the browser, before they reach the server or your LLM."
1801
1819
  },
1802
1820
  {
1803
1821
  title: "JavaScript bug reporting SDK for the browser",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mushi-mushi/mcp",
3
3
  "mcpName": "io.github.kensaurus/mushi-mushi",
4
- "version": "0.29.1",
4
+ "version": "0.29.2",
5
5
  "license": "MIT",
6
6
  "description": "MCP server for Cursor, Claude Code and Copilot. The bug mediator for AI-built apps: plain-English diagnosis + a ready fix, in your editor.",
7
7
  "type": "module",
@@ -45,7 +45,7 @@
45
45
  "@modelcontextprotocol/core": "^2.3.1",
46
46
  "@modelcontextprotocol/server": "^2.3.1",
47
47
  "zod": "^4.6.7",
48
- "@mushi-mushi/core": "^1.33.2"
48
+ "@mushi-mushi/core": "^1.33.3"
49
49
  },
50
50
  "peerDependencies": {
51
51
  "@sentry/node": "^10.57.0"