Commit graph

282 commits

Author SHA1 Message Date
CRT
c7c97b34c1 Checks: findings with a skill get Open guide (context menu and a link on the card) to the shipped skills/<name>/SKILL.md; known-skill list kept equal to skills/ by a test 2026-10-23 09:22:22 +08:00
CRT
8481199f67 Open in Google Play Console deep-links the app: Play developer id per credential profile (accounts play-developer, desktop Accounts), shared playAppUrl builder for desktop, CLI and watch; developer chooser instead of the console root 2026-10-23 09:20:35 +08:00
CRT
8d7c4e5c91 Desktop: folders keep claiming their store records before the config read returns; a store app with a folder's id is never listed twice 2026-10-23 09:18:03 +08:00
CRT
b9e821ef00 play build: signing passwords only through the child environment, never argv 2026-10-23 08:51:07 +08:00
CRT
3112df31d4 Signed AAB guardrails, injected signing args, IPA version train check, Play notes lint at build 2026-10-23 08:49:43 +08:00
CRT
f58add10f1 watch: read a missing App Store bundle id from the API instead of skipping the app
Some checks failed
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 1m3s
ci / linux (push) Successful in 3m37s
ci / windows (push) Successful in 3m46s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 26s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 32s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m23s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m21s
ci / record (push) Successful in 10s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m53s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m25s
2026-10-23 02:06:56 +08:00
CRT
1729cb6cc8 Desktop: per-store ignore (hide only the App Store or Google Play side), N ignored show toggle in sidebar and portfolio, Unignore in the app controls; ignore flags sync with the shared app list 2026-10-23 01:35:27 +08:00
CRT
b4084d0b16 Ignore dormant apps: per-app and per-store 'ignored' in the app list; apps ignore/unignore, watch, ws and apps list skip them; MCP tools 2026-10-23 00:57:42 +08:00
CRT
cefa3580a0 Reviews: a store read that failed everywhere is an error, not an empty fresh list; Reviews tab says Apple's API can lag and Play returns 7 days; pitfall 106 2026-10-23 00:33:27 +08:00
CRT
2accb961f6 Node: JSON configs are read as data, not imported (store-only apps failed under npx: needs an import attribute); test, pitfall 105 2026-10-22 23:18:30 +08:00
CRT
1ebafbd91a storebound watch: store events for every app on the machine (rejected, approved, live, halted, crash threshold, reviews) to ntfy / Telegram / webhook / OS notification, loop or --once, baseline first, events.jsonl; storebound events and MCP events_recent; docs/watch.md; tests 2026-10-22 22:38:15 +08:00
CRT
a13114ffdd Desktop: background store reads from the tray (no document.hidden skip, backoff), notifications by kind (rejected, approved, live, halted, crash, reviews) with switches, quiet hours and mute, click-through on next show; tray menu with apps and their states, read now, mute, updates, settings, tooltip summary and attention dot; tray_update command; tests 2026-10-22 22:24:05 +08:00
CRT
a566cd3a92 apple listing: a version in PENDING_DEVELOPER_RELEASE refusal names apple release --manual-release --version <v>; play release dry run shows the staged rollout share 2026-10-22 21:52:37 +08:00
CRT
2cc92bf335 Subscriptions drift on both stores (Apple prices in the dry run, localizations, group names, attributes, territories, intro offers reported; Play offer phases and prices, other-regions price, dropped regions gated, grace period, --prune-languages); pitfall 104, CHANGELOG; test fixtures for the new reads 2026-10-22 20:49:43 +08:00
CRT
fff087e923 Drift on existing items: offer-code and win-back campaigns that differ are named (Apple cannot edit them), in-app event attributes patched on drafts, a removed custom page deep link cleared, config languages without a version localization named, data safety dry run says Play has no read API; appinfo reads /v1/appPriceSchedules/{id}/manualPrices; a new Play language without an icon warns instead of stopping; fake store lists for the new reads 2026-10-22 20:38:54 +08:00
CRT
044e8bb9b2 apple appinfo: live app price and availability compared with the config (price change needs --allow-price-changes, territory removals --allow-availability-changes); review-details --dry reads the store and shows old -> new (masked) 2026-10-22 20:33:46 +08:00
CRT
26d7b3ff37 apple iap: existing products are compared with the config: localization name / description, reference name, review note (patched), family sharing (reported; on only), availability territories; all shown in the dry plan, one line each 2026-10-22 20:32:52 +08:00
CRT
8e5dccbc43 apple iap: the dry run shows a live price that differs from the config (USA base and overrides) and --allow-price-changes replaces the price schedule; prices diff (the catalog diff report) 2026-10-22 20:28:16 +08:00
CRT
3deaf353be Entitlements reference check compares forward-slash paths on every OS (false 'not referenced by CODE_SIGN_ENTITLEMENTS' on Windows); test, pitfall 103
Some checks failed
ci / gate (push) Successful in 2s
ci / linux (push) Has been cancelled
ci / ci (push) Has been cancelled
ci / windows (push) Has been cancelled
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been cancelled
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / record (push) Has been cancelled
2026-10-22 16:03:07 +08:00
CRT
55862cca50 apps relink: after a machine move, missing app folders are pointed at the same app here (last path parts, else the config's app name), ids kept; apps folders hints it; apps add names an app after its config app name 2026-10-22 06:22:08 +08:00
CRT
4bddbe07dd Console plan apple-app-privacy: Edit opens Data Collection first on a published app (type list ends in Continue), each type's last step is Publish (live, no draft); Publish is the owner's unless bypass mode is on (verified 2026-10-22)
Some checks failed
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 2m7s
ci / windows (push) Successful in 3m46s
ci / linux (push) Successful in 4m21s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Failing after 30s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Failing after 32s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Failing after 1m26s
ci / record (push) Successful in 11s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Failing after 1m26s
ci / acceptance (node20, 20, windows, Windows, node) (push) Failing after 5m24s
ci / acceptance (node22, 22, windows, Windows, node) (push) Failing after 5m6s
2026-10-22 05:24:58 +08:00
CRT
4db6cb34f7 doctor: at a terminal the used-for column is cut to the window width so rows never wrap; piped output stays whole
Some checks failed
ci / gate (push) Successful in 3s
ci / ci (push) Failing after 1m49s
ci / linux (push) Successful in 4m45s
ci / windows (push) Successful in 4m14s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Failing after 34s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Failing after 1m23s
ci / record (push) Successful in 11s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Failing after 1m25s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Failing after 28s
ci / acceptance (node20, 20, windows, Windows, node) (push) Failing after 5m7s
ci / acceptance (node22, 22, windows, Windows, node) (push) Failing after 5m20s
2026-10-22 03:45:25 +08:00
CRT
92922a333b play listing uploads the hi-res icon (and the feature graphic) for a new Play language in the same edit (403 no high resolution icon set; play images skipped it), pitfall 102; script traces skip test files
Some checks failed
ci / gate (push) Successful in 3s
ci / ci (push) Failing after 1m31s
ci / linux (push) Successful in 4m31s
ci / windows (push) Successful in 4m40s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Failing after 35s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Failing after 1m29s
ci / record (push) Successful in 10s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Failing after 1m21s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Failing after 38s
ci / acceptance (node20, 20, windows, Windows, node) (push) Failing after 5m32s
ci / acceptance (node22, 22, windows, Windows, node) (push) Failing after 5m19s
2026-10-22 03:33:30 +08:00
CRT
d5877504ee storebound aab <file> --json (offline packageName / versionCode / versionName / SDKs / sha256, no config) and play release --json result for CI scripts that replace their own Play API calls
Some checks failed
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 1m30s
ci / linux (push) Failing after 1m12s
ci / windows (push) Failing after 17m12s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been cancelled
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / record (push) Has been cancelled
2026-10-22 03:28:46 +08:00
CRT
ec1ecd567b Direct store API traces: comment lines are skipped and each file names a tool once (a real project listed one script five times, mostly doc comments)
Some checks failed
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 1m29s
ci / windows (push) Successful in 4m1s
ci / linux (push) Successful in 7m9s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 27s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m16s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 39s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 6m19s
ci / record (push) Failing after 13m52s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Failing after 15m8s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m59s
2026-10-22 03:22:23 +08:00
CRT
f30f6f5456 apple build stops before the archive in an SSH / non-GUI session (errSecInternalComponent) with how to run it in the logged-in session, --allow-ssh to skip; relative credential paths resolve from the project and xcodebuild gets an absolute ASC key path; tests, pitfall 101 2026-10-22 02:38:45 +08:00
CRT
7e5bb5ed53 Bypass mode (owner opt-in, default off): storebound settings bypass on|off|status and a one-time question in init; MCP owner_step (owner-only commands, dry run first), owner-only api operations with --yes --confirm, console plans may press buttons.final; every action logged to .storebound/owner-actions.log; docs/bypass.md, agent rules, tests 2026-10-22 02:27:34 +08:00
CRT
d8a293706b doctor: build dependencies (JDK with the version the project needs, Android SDK command-line tools, CocoaPods, Node, Bun, bundletool), too-old status, doctor --install <tool> --yes runs the package-manager command (never sudo); desktop Dependencies shows too old; gen-flags works on Windows paths 2026-10-22 02:21:26 +08:00
CRT
44c746244b Terminal: colors, status emoji and a live spinner line for waits at a TTY; plain lines unchanged when piped, in CI, with NO_COLOR, TERM=dumb, --json or MCP; desktop download progress through the log 2026-10-22 02:15:03 +08:00
CRT
dd6aa1e704 MCP: multi-line --text goes to the CLI as --from-text <temp file> (console_verify kept only the first line on Windows); long JSON output keeps its start and names a file with the whole output (console_plan lost its start URL); test, pitfall 100 2026-10-22 02:12:26 +08:00
CRT
a434ddbf2e Windows builds and moved credentials: play build runs gradlew.bat through cmd /c and takes C:/ keystore paths as absolute (pitfall 98); check names credential paths missing on this machine and a keystore the stored password / alias do not open (keytool) (pitfall 99); play / apple build write <out>/latest.json for CI; CI install from a git clone documented 2026-10-22 02:10:52 +08:00
CRT
6abd49e8fa Direct store API calls in a project's scripts: androidpublisher.googleapis.com, the googleapis androidpublisher client, api.appstoreconnect.apple.com, altool / Transporter in CI files and scripts; scan rule direct-store-api, check and release status warnings with file:line and the storebound command; storebound's own checkout skipped; test, pitfall 97 2026-10-22 02:04:28 +08:00
CRT
ee290c993d fastlane traces: check and release status warn, scan reports fastlane-upload when a Fastfile / Appfile or a CI file or script still runs fastlane supply, deliver or pilot (file:line, storebound import fastlane); test, pitfall 96
All checks were successful
ci / gate (push) Successful in 3s
ci / ci (push) Successful in 2m8s
ci / windows (push) Successful in 3m54s
ci / linux (push) Successful in 4m12s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 26s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 43s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m20s
ci / record (push) Successful in 12s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m26s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m19s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 5m6s
2026-10-22 01:39:14 +08:00
CRT
9241c8ada0 Windows checkouts: .gitattributes keeps text files LF (CRLF skills broke gen-adapters); findInstalled builds macOS/Linux paths with posix join; CONTRIBUTING Windows setup and desktop build 2026-10-21 22:26:30 +08:00
CRT
f1b8bcecdd Windows: MCP entries start through cmd /c npx or bun cli/index.ts (npx.cmd and the sh launcher cannot be spawned, pitfall 94); desktop download streams with progress and fails after 60 s without data (pitfall 95); getting-started Windows note 2026-10-21 22:21:49 +08:00
CRT
9e1ce42fe5 shots: render refuses missing frames and fails on load errors; shots check errors on renders with failed loads (pitfall 93)
Some checks failed
ci / gate (push) Successful in 2s
ci / linux (push) Has been cancelled
ci / ci (push) Has been cancelled
ci / windows (push) Has been cancelled
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been cancelled
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / record (push) Has been cancelled
2026-10-21 18:09:06 +07:00
CRT
55f8b7ca16 Screenshot guardrails: name every screenshot not COMPLETE on 409 ASSET_IN_POST_PROCESSING (submit, validate; stuck after 5 min in UPLOAD_COMPLETE), apple screenshots --repair-stuck replaces only those in place, part uploads without Expect: 100-continue (failed part deletes the reservation, one retry, never committed), storebound api --confirm <operationId> for agents' plain writes (never owner-only) 2026-10-21 18:08:57 +07:00
CRT
4fecf2e0b1 apple submit --yes submits a draft prepared with --no-submit that already holds the version and items (was 'nothing to submit'); iap-submit the same for a draft holding the asked-for items; test, pitfall 90, CHANGELOG
Some checks failed
ci / gate (push) Successful in 2s
ci / windows (push) Has been cancelled
ci / linux (push) Has been cancelled
ci / ci (push) Has been cancelled
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been cancelled
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / record (push) Has been cancelled
2026-10-21 11:19:50 +07:00
CRT
2c3b7e25a8 console verify: an older page's long labelled radio still counts from page text when the sheet answers Yes / No; tests and the teaser follow the new sign-in details question and the added App Privacy step
Some checks failed
ci / gate (push) Successful in 3s
ci / ci (push) Has been cancelled
ci / linux (push) Has been cancelled
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Has been cancelled
ci / acceptance (bun, 22, windows, Windows, bun) (push) Has been cancelled
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node20, 20, windows, Windows, node) (push) Has been cancelled
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Has been cancelled
ci / acceptance (node22, 22, windows, Windows, node) (push) Has been cancelled
ci / windows (push) Has been cancelled
ci / record (push) Has been cancelled
2026-10-21 05:39:45 +07:00
CRT
4e1076f411 review-details: a reviewContact that is present but has empty fields (or no usable email) is named as such with its file, instead of 'no review contact' 2026-10-21 05:37:45 +07:00
CRT
afb1393a18 flags regenerated
Some checks failed
ci / gate (push) Successful in 2s
ci / ci (push) Failing after 1m50s
ci / linux (push) Successful in 4m4s
ci / windows (push) Successful in 3m51s
ci / acceptance (bun, 22, ubuntu-22.04, Linux, bun) (push) Successful in 30s
ci / acceptance (node20, 20, ubuntu-22.04, Linux, node) (push) Successful in 1m2s
ci / acceptance (node22, 22, ubuntu-22.04, Linux, node) (push) Successful in 1m2s
ci / record (push) Successful in 7s
ci / acceptance (bun, 22, windows, Windows, bun) (push) Successful in 25s
ci / acceptance (node20, 20, windows, Windows, node) (push) Successful in 5m12s
ci / acceptance (node22, 22, windows, Windows, node) (push) Successful in 4m52s
2026-10-21 05:36:12 +07:00
CRT
63b1f2c585 testflight distribute: groups of apple.testflight.groups missing on App Store Connect are created first (only the asked-for ones, never removed; dry run shows it); tests, skill, CHANGELOG 2026-10-21 05:35:19 +07:00
CRT
7b8ceb81e5 Game Center switch before submit: apple submit / resubmit and signing ensure create gameCenterDetails and gameCenterAppVersions when Game Center is in use (config, entitlements or the built IPA), shown in the dry run; validate blocks on either missing; fake 409 BUILD_INDICATES_GAME_CENTER_ENABLED until both exist; pitfall 89 2026-10-21 05:33:53 +07:00
CRT
6eff4b3ea3 desktop coverage: apple game-center, play games and games status mapped to the Game services card 2026-10-21 05:29:55 +07:00
CRT
2f157e1323 gen-flags: Args.required reads are flags too (edit --ops, privacy-manifest --ios, apple listing --version were refused as unknown options); play games client listAll (no false flags) 2026-10-21 05:29:08 +07:00
CRT
b627a18990 apple game-center: literal API paths (query guard reads them); api coverage regenerated 2026-10-21 05:29:08 +07:00
CRT
9bf96c77a0 games status: both stores' game services in one read-only report (CLI, MCP games_status, desktop read method); --json status output stays pure JSON 2026-10-21 05:28:47 +07:00
CRT
ea52614b5e MCP: apple_game_center, apple_game_center_status, play_games, play_games_status (writes dry by default) 2026-10-21 05:28:47 +07:00
CRT
d05e64612b scan: Play Games Services dependency without the APP_ID meta-data or resource (sign-in fails at runtime) 2026-10-21 05:28:47 +07:00
CRT
bc0e4e549d validate / check: Game Center entitlement vs App ID capability vs config, the PGS APP_ID resource vs Gradle and config, store state vs the games list, player id as User ID reminders (App Privacy USER_ID, Data safety PSL_USER_ACCOUNT) 2026-10-21 05:28:47 +07:00