|
|
7960063e0e
|
Signed AAB guardrails, injected signing args, IPA version train check, Play notes lint at build
|
2026-10-23 08:49:43 +08:00 |
|
|
|
13b91dd423
|
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 |
|
|
|
75bf62e125
|
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 |
|
|
|
d3d31d6c12
|
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 |
|
|
|
78c541f2b8
|
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 |
|
|
|
5d8a0f5e9a
|
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 |
|
|
|
abc195aee6
|
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 |
|
|
|
e381bc2256
|
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 |
|
|
|
f2b841d735
|
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 |
|
|
|
f7ff52dfdd
|
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 |
|
|
|
cbba936ed8
|
Entitlements reference check compares forward-slash paths on every OS (false 'not referenced by CODE_SIGN_ENTITLEMENTS' on Windows); test, pitfall 103
|
2026-10-22 16:03:07 +08:00 |
|
|
|
cd0110527c
|
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 |
|
|
|
600b6893e5
|
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
|
2026-10-22 03:33:30 +08:00 |
|
|
|
256e8e33ad
|
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
|
2026-10-22 03:28:46 +08:00 |
|
|
|
ee35b11341
|
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)
|
2026-10-22 03:22:23 +08:00 |
|
|
|
b97f23701f
|
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 |
|
|
|
9bd17c401d
|
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 |
|
|
|
2598c4953a
|
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 |
|
|
|
f7dd646e57
|
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 |
|
|
|
e1634f6abe
|
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 |
|
|
|
73d308164d
|
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 |
|
|
|
4fcee60ba6
|
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 |
|
|
|
4f993a906a
|
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
|
2026-10-22 01:39:14 +08:00 |
|
|
|
5317230b08
|
README: drop the stale static version badge (npm badge is live), Agent Skills badge 39 with a test that keeps it in step; CHANGELOG Unreleased for the Windows fixes
|
2026-10-21 22:37:51 +08:00 |
|
|
|
0ac3cd02b0
|
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 |
|
|
|
88d1b58f1f
|
shots: render refuses missing frames and fails on load errors; shots check errors on renders with failed loads (pitfall 93)
|
2026-10-21 18:09:06 +07:00 |
|
|
|
00756e6908
|
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 |
|
|
|
4d70be3404
|
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
|
2026-10-21 11:19:50 +07:00 |
|
|
|
327a85e042
|
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
|
2026-10-21 05:39:45 +07:00 |
|
|
|
b6ea9159d8
|
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 |
|
|
|
aceb994cae
|
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 |
|
|
|
163e666834
|
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 |
|
|
|
a4c31e096b
|
tests: game services on both stores against the fakes (capability ensure, Game Center enable and read-back, leaderboard / achievement create, update, no-op, lost answers), entitlement and APP_ID checks, PGS console plan URLs and verify, validate findings; fake Games Configuration API
|
2026-10-21 05:28:47 +07:00 |
|
|
|
5a5d7fd4e7
|
console plan play-games-services: agent-first PGS setup (games project, Android credential with the app-signing SHA-1, web OAuth client, owner's Publish) with absolute Play Console and Google Cloud links, and console verify from the page text
|
2026-10-21 05:28:47 +07:00 |
|
|
|
dc6bb088a1
|
desktop coverage: every CLI command mapped to its window place (cli/lib/desktop-coverage.ts), docs/desktop-coverage.md generated from it, guard test fails on a gap or an unjustified not-for-desktop
|
2026-10-21 05:14:16 +07:00 |
|
|
|
335a4124ab
|
console plans: guardrails from a real run (2026-10-21): health none label and Sign in details Yes/No + Add details (old labels as altLabels, verify accepts both), finance boxes on step 1, App Privacy Additional Setup Required OK, verify from DOM input states (verify.capture, --from), Save + confirm before every Next on Play pages, IARC Digital purchases boxes and an exact-label in-page helper that refuses patterns and blanket answers; review contact found in parent folders, the profile and more key shapes with the files checked listed; one-line errors for missing required values (Args.required); pitfalls 86-87, tests
|
2026-10-21 05:03:02 +07:00 |
|
|
|
dda21d2570
|
shots record (web): frames at device pixels through Page.captureScreenshot (clip scale = dpr, long side capped at 1920, 3 requests in flight, midpoint timestamps into the ffmpeg concat); Chromium's screencast stayed at CSS size. Warnings for frames smaller than asked and under 20 frames/s; record-web browser test, pitfall 85
|
2026-10-21 03:59:39 +07:00 |
|
|
|
ef3c66e8f0
|
release: the Linux / Windows updater signatures are made on the VDS (desktop-release add-remote, vds-key; tools/vds-sign.ts); the Mac no longer downloads those installers, verifies each returned .sig over its BLAKE2b-512 digest before publishing; release.ts --sign-local keeps the old path
|
2026-10-21 03:14:53 +07:00 |
|
|
|
d94bf67340
|
tests: the AAB fixture targets API 36 (Play's minimum since 2026-08-31; play upload now refuses 35)
|
2026-10-21 03:08:43 +07:00 |
|
|
|
3a11682a37
|
shots: app titles get the weights the templates use (variable axis, used range or static weights; font-weight warning), palette.bg as one colour or a CSS gradient string (validated; contrast guard in shots check), photo backgrounds (palette.image, shots.feature.background) with overlay and cover crop
|
2026-10-21 03:07:26 +07:00 |
|
|
|
353e13d5be
|
shots: Playwright's chromium is taken from the namespace or default of a project's CommonJS playwright; a module without chromium.launch names the resolved file and its exports (a project's playwright 1.57 under a global Bun install gave 'reading launch of undefined'); tests: the review-account fixture typechecks
|
2026-10-20 13:44:22 +07:00 |
|
|
|
8c1a01d856
|
config loads without Node's MODULE_TYPELESS_PACKAGE_JSON warning in a CommonJS project; capture sign-in docs use captureAuth and check notes a local capture that signs in with reviewDemoAccount (the App Review account)
|
2026-10-20 13:11:10 +07:00 |
|
|
|
e1e4e05237
|
shots capture: signed-in web apps (shots.capture.auth request with ${cred:}/${env:} references or storageState), shots login saves a demo sign-in to .storebound/auth.json (0600), expired-session warning, secrets and cookies masked
|
2026-10-20 12:41:43 +07:00 |
|
|
|
9ab64bcbdf
|
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
|
2026-10-20 12:15:00 +07:00 |
|
|
|
e59539fec8
|
shots: Mac App Store screenshots (mac size, APP_DESKTOP to the macOS version), a landscape layout (Mac window or bare; Mac, Play Chromebook, Play tablets), safe margins in every template checked by shots check from the render's layout boxes, a contact sheet timeout that scales with images, sizes and load; pitfall 80
|
2026-10-20 03:29:19 +07:00 |
|
|
|
9db7180eb9
|
merge origin/main (cross-store text checker); macOS platform pitfall renumbered to 79
|
2026-10-20 03:06:16 +07:00 |
|
|
|
c2f34c62f3
|
apple creative-assets: place Header and Search Results assets once Apple approved them (the version page offers only approved assets); waiting files are reported per locale and placement with their upload date and the re-run command, in the run, --verify, validate and the report; iPhone Duo: the published API spec still has no Duo type, the note says the console takes Duo and the API does not yet
|
2026-10-20 03:04:14 +07:00 |
|
|
|
47dfd372fe
|
apple: macOS (tvOS, visionOS) versions are no longer invisible: every version and review submission lookup is per platform; status, listing, listing pull, resubmit, submit, release and screenshots take --platform and otherwise pick the platform that has the version they need (refuse naming both when several do); status, validate, release status, the report and the desktop label versions with their platform; MCP and owner actions get platform; pitfall 77
|
2026-10-20 03:00:05 +07:00 |
|
|
|
edabbec874
|
cross-store text: other platforms named in App Store text (2.3.10: Android, Google Play, ...) or Play text (Metadata: iOS, App Store, Game Center, ...) are refused by every text write (apple / play listing, play release / upload notes, listing set, whats-new, storebound edit, desktop editor), blockers in check / validate, scan other-platforms / play-other-platforms; listing.allowPlatformMentions for the owner's functional mentions; whats-new splits [apple] / [play] lines per store; storebound api --yes without a TTY is refused (exit 1, stderr) instead of a silent dry run; pitfalls 77, 78
|
2026-10-20 02:57:25 +07:00 |
|
|
|
1736300784
|
apple creative-assets: a placement App Store Connect refuses on the live version is reported with the live version page's deep link, the live page stays unchanged (new placement first, old one removed after) and the other live slots are not retried; pitfall 76
|
2026-10-20 02:50:09 +07:00 |
|