@mushi-mushi/cli 0.17.0 → 0.17.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
@@ -100,6 +100,10 @@ Reads `package.json`, checks the npm registry for each installed
100
100
  `@mushi-mushi/*` package, and runs the right install command for your package
101
101
  manager (npm / pnpm / yarn / bun) to bump them to the latest stable release.
102
102
 
103
+ **Console equivalent:** **Connect & Update → Create Upgrade PR** opens a GitHub
104
+ draft PR for the linked repo (backed by `sdk-upgrade-worker`). Use the CLI for
105
+ local bumps; use the PR flow when you want review + CI on the dependency change.
106
+
103
107
  ```bash
104
108
  mushi upgrade # plan + install
105
109
  mushi upgrade --dry-run # print the install command without running it
@@ -152,16 +156,23 @@ real-catalog regression guard).
152
156
 
153
157
  ### `mushi doctor`
154
158
 
155
- Checks CLI and SDK health. Without flags it verifies local config and endpoint
156
- reachability only.
159
+ Checks CLI and SDK health. **Ingest and dispatch (server) checks run by
160
+ default** — pass `--no-server` / `--no-ingest` to limit it to local checks.
157
161
 
158
162
  ```bash
159
- mushi doctor # local checks only
160
- mushi doctor --server # + calls /preflight on the backend (all 4 dispatch checks)
161
- mushi doctor --ingest # + calls /v1/sync/ingest-setup (API key → heartbeat → first report)
163
+ mushi doctor # local + ingest + dispatch readiness (the full picture)
164
+ mushi doctor --no-server # skip the dispatch-readiness /preflight checks
165
+ mushi doctor --no-ingest # skip the ingest-setup checks (SDK heartbeat, first report)
166
+ mushi doctor --fix # apply safe local fixes, then re-run and report the post-fix state
162
167
  mushi doctor --json # machine-readable JSON output (exits 1 if any check fails)
168
+ mushi doctor --qa-stories # also flag enabled QA stories with setup issues (needs server creds)
169
+ mushi doctor --host-app # also verify host-app wiring (env vars, Cursor MCP, Capacitor notes)
163
170
  ```
164
171
 
172
+ `--fix` writes any missing `.env.local` lines and wires the Cursor MCP config
173
+ (via `mushi connect`), then re-runs every check so the printed result and exit
174
+ code reflect the post-fix state rather than the stale pre-fix failures.
175
+
165
176
  Local checks performed:
166
177
 
167
178
  | Check | What it verifies |
@@ -170,9 +181,10 @@ Local checks performed:
170
181
  | Endpoint reachability | `GET /v1/sdk/config?project_id=...` returns 200 |
171
182
  | SDK install | `@mushi-mushi/web` or framework-specific SDK is in `node_modules` |
172
183
 
173
- With `--server`, also calls `GET /v1/admin/projects/:id/preflight` (same 4 checks
174
- the admin console dispatch popover uses) and merges the results. The four
175
- server checks (`key` values returned by the endpoint):
184
+ The dispatch-readiness checks (on by default; skip with `--no-server`) call
185
+ `GET /v1/admin/projects/:id/preflight` (the same 4 checks the admin console
186
+ dispatch popover uses) and merge the results. The four server checks (`key`
187
+ values returned by the endpoint):
176
188
 
177
189
  | `key` | What it verifies |
178
190
  |---|---|
@@ -181,15 +193,16 @@ server checks (`key` values returned by the endpoint):
181
193
  | `anthropic` | A BYOK Anthropic key is stored in Supabase Vault (`project_settings.byok_anthropic_key_ref`) |
182
194
  | `autofix` | The autofix toggle is ON (`project_settings.autofix_enabled = true`) |
183
195
 
184
- `--server` requires `adminOrApiKey` credentials — set `MUSHI_API_KEY` to an
185
- admin key (not a public SDK key).
196
+ The dispatch-readiness checks require `adminOrApiKey` credentials — set
197
+ `MUSHI_API_KEY` to an admin key (not a public SDK key). If you only have an SDK
198
+ key, pass `--no-server` to skip them.
186
199
 
187
- With `--ingest`, also calls `GET /v1/sync/ingest-setup` (authenticated with the
188
- SDK API key) and reports each **required ingest step** — project exists, active
189
- API key, SDK heartbeat, at least one ingested report — plus a
190
- `Last SDK heartbeat` diagnostic with the timestamp and endpoint host. This is
191
- the same payload `mushi connect --wait` polls, so a failing step here tells you
192
- exactly why the banner isn't showing up.
200
+ The ingest checks (on by default; skip with `--no-ingest`) call
201
+ `GET /v1/sync/ingest-setup` (authenticated with the SDK API key) and report each
202
+ **required ingest step** — project exists, active API key, SDK heartbeat, at
203
+ least one ingested report — plus a `Last SDK heartbeat` diagnostic with the
204
+ timestamp and endpoint host. This is the same payload `mushi connect --wait`
205
+ polls, so a failing step here tells you exactly why the banner isn't showing up.
193
206
 
194
207
  ### `mushi reset <projectId>`
195
208
 
@@ -301,4 +314,4 @@ MIT
301
314
  <!-- mushi-readme-stats-footer -->
302
315
  ---
303
316
 
304
- <sub>Monorepo scale (June 2026): 43 edge functions · 234 SQL migrations · 13 outbound plugins · 11 inbound adapters. 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>
317
+ <sub>Monorepo scale (June 2026): 47 edge functions · 256 SQL migrations · 13 outbound plugins · 11 inbound adapters · 18 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>
@@ -0,0 +1,6 @@
1
+ // src/version.ts
2
+ var MUSHI_CLI_VERSION = true ? "0.17.2" : "0.0.0-dev";
3
+
4
+ export {
5
+ MUSHI_CLI_VERSION
6
+ };
@@ -273,6 +273,7 @@ function detectFramework(cwd, pkg) {
273
273
  if (deps.has("@angular/core")) return FRAMEWORKS.angular;
274
274
  if (deps.has("expo")) return FRAMEWORKS.expo;
275
275
  if (deps.has("react-native")) return FRAMEWORKS["react-native"];
276
+ if (deps.has("@capacitor/core") && deps.has("react")) return FRAMEWORKS.react;
276
277
  if (deps.has("@capacitor/core")) return FRAMEWORKS.capacitor;
277
278
  if (deps.has("svelte")) return FRAMEWORKS.svelte;
278
279
  if (deps.has("vue")) return FRAMEWORKS.vue;
package/dist/detect.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  installCommand,
8
8
  isFrameworkId,
9
9
  readPackageJson
10
- } from "./chunk-NYPX5KXR.js";
10
+ } from "./chunk-S4WQHEGH.js";
11
11
  export {
12
12
  FRAMEWORKS,
13
13
  FRAMEWORK_IDS,