apps folders add adds the folder (template note, refusals with reasons); MCP: .mcp.json never spawns a missing plugin path (sh fallback to PATH, npx), mcp/serve skip the self-update, spawned handshake test; store build minimums in one dated table: Play target API 36 and App Store Xcode 26 / SDK 26 blocked in scan, validate, play upload/release, apple upload; pitfalls 81-83
This commit is contained in:
parent
9805582278
commit
9ab64bcbdf
16 changed files with 323 additions and 14 deletions
|
|
@ -994,3 +994,35 @@ that fails without the fix (see CONTRIBUTING.md).
|
|||
`cli/shots/report.ts`, `IMAGE_SPECS.mac` and `macNote` in `cli/shots/spec.ts`, `MAC_DISPLAY` in
|
||||
`cli/apple/screenshots.ts`, `sheetTimeoutMs`; `tests/mac-landscape.test.ts`, `tests/browser/landscape.browser.ts`,
|
||||
the macOS case in `tests/idempotency.test.ts`.
|
||||
|
||||
## 81. `storebound apps folders add` listed the folders and added nothing
|
||||
- **Symptom:** `storebound apps folders add` (or with `"$PWD"`) in a freshly init-ed folder printed the folder list,
|
||||
no error, and ~/.storebound/projects.json stayed without the folder.
|
||||
- **Cause:** only `apps add` added; `apps folders` ignored every word after it and listed.
|
||||
- **Do:** `apps folders add [<folder>]` is now the same as `apps add [<folder>]` (bare = the current folder). A folder
|
||||
whose config still has template values is added with a note; a folder without a config is refused with the reason
|
||||
and the fix (`storebound init`). Unknown words after `apps folders` are an error, never a silent list.
|
||||
- **Guard:** `folders` and `templateNote` in `cli/apps.ts`; `tests/store-minimums.test.ts` (apps folders add).
|
||||
|
||||
## 82. The MCP server failed to connect: spawn ENOENT, CONNECTION_CLOSED
|
||||
- **Symptom:** the client showed `storebound (ENOENT) posix_spawn '<home>/…/bin/storebound'` or
|
||||
"CONNECTION_CLOSED: Connection closed".
|
||||
- **Cause:** `.mcp.json` spawned `${CLAUDE_PLUGIN_ROOT}/bin/storebound` directly; when that folder is gone (an old
|
||||
plugin cache after an update) or the variable is unset (the repo opened as a project), the spawn fails before any
|
||||
code runs. Under npx, the self-update could also start a second npx download before the handshake.
|
||||
- **Do:** `.mcp.json` runs `sh -c`: the plugin's launcher if it exists, else `storebound` on PATH, else
|
||||
`npx -y storebound@latest mcp`. `mcp` and `serve` skip the self-update. Nothing may print on stdout before the
|
||||
JSON-RPC answer (logs go to stderr).
|
||||
- **Guard:** `MCP_LAUNCH` in `tools/gen-adapters.ts`, `cli/index.ts`; `tests/mcp-spawn.test.ts` spawns the CLI, the
|
||||
launcher and the `.mcp.json` command with a missing plugin root and completes `initialize` within 10 s.
|
||||
|
||||
## 83. Uploads below the store's build minimum (Play target API level, App Store Xcode / SDK)
|
||||
- **Symptom:** Google Play refuses a bundle with targetSdkVersion 35 (API 36+ for new apps and updates since
|
||||
2026-08-31); App Store Connect refuses an IPA built with an Xcode / SDK older than the minimum (Xcode 26 / the 26
|
||||
SDKs since 2026-04-28).
|
||||
- **Do:** set `targetSdkVersion` (and `compileSdkVersion`) in android/variables.gradle (Capacitor), the app module's
|
||||
build.gradle(.kts), Flutter's android/app/build.gradle or Unity's Target API Level; build iOS with the current Xcode.
|
||||
`scan` / `validate` (rules `play-target-sdk`, `apple-min-sdk` from the newest IPA in build/ios/export) and
|
||||
`play upload` / `play release` / `apple upload` block before any network call, naming the requirement, date and fix.
|
||||
- **Guard:** the dated tables `PLAY_TARGET_SDK_TABLE` and `APPLE_MIN_SDK_TABLE` in `cli/lib/store-minimums.ts` (a new
|
||||
year is one row); `tests/store-minimums.test.ts`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue