|
|
8084104a4d
|
desktop coverage entry for shots copy
|
2026-10-24 12:16:49 +08:00 |
|
|
|
fb1609cba7
|
upload --pre-check/--evidence, shots copy translate, game-center --locale-map, play games API-disabled hint
|
2026-10-24 12:16:48 +08:00 |
|
|
|
26f9559e1a
|
play-publish-changes: a release is ready only when the store page shows an older version; unknown reads are not determined, never a mismatch
|
2026-10-24 12:12:37 +08:00 |
|
|
|
1bb43fd4a0
|
play managed publishing: console plan/verify play-publish-changes, ready-to-publish items in play status, desktop hint
|
2026-10-24 11:56:07 +08:00 |
|
|
|
4dff7d9b2e
|
desktop open: Windows window check uses real top-level windows (the tray helper windows and MainWindowHandle also answer for a hidden app)
|
2026-10-23 22:53:30 +08:00 |
|
|
|
8df41a26b0
|
desktop open: a hidden tray copy that is already running counts once its window is visible (Windows), graceful stop wait 3 s on Windows
|
2026-10-23 22:53:30 +08:00 |
|
|
|
d4cf1ad3a1
|
shots: full-bleed layout (shots.layout bleed) with corner captions, per-size frames, and landscape orientation, on top of the landscape sizes
|
2026-10-23 22:45:10 +08:00 |
|
|
|
8f69a27709
|
desktop install: stop the running app by exact path, check the installed exe's real version, verify it opened
|
2026-10-23 15:57:32 +07:00 |
|
|
|
b0641c1fc8
|
play products: clamp regional prices to Play's min/max, per-product results; apple iap: skip live localizations, per-product results
|
2026-10-23 16:53:25 +08:00 |
|
|
|
487e138f9d
|
watch: ingest sink (--notify ingest) posting events to a push ingest endpoint
|
2026-10-23 15:30:18 +08:00 |
|
|
|
84efa4e913
|
desktop coverage: place for the status command
|
2026-10-23 14:14:02 +08:00 |
|
|
|
960e084bea
|
ship step: apple build plan keeps its version and build in --json; test fixtures pass the scrub (documentation IPs, neutral home paths, 10-char key ids)
|
2026-10-23 13:55:44 +08:00 |
|
|
|
06a0b424f5
|
Ship-step contract for pipelines: uniform exit codes (0/1/2/3/4/7) in cli/lib/ship-step.ts, one final --json line, --result-file (atomic, also on failure), --progress json, --env-file with secret redaction, --version-from; idempotent play upload / apple upload / play release / apple submit re-runs end with exit 7; play upload takes --track production and --version-code
|
2026-10-23 13:13:21 +08:00 |
|
|
|
c7bae75ed0
|
apple build/upload: accept --allow-version-mismatch (flag list regenerated); 1.0 and 1.0.0 are one version train
|
2026-10-23 09:57:13 +08:00 |
|
|
|
a656240bfb
|
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 |
|
|
|
4a74989a95
|
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 |
|
|
|
7c769c18f4
|
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 |
|
|
|
e4ebbb825d
|
play build: signing passwords only through the child environment, never argv
|
2026-10-23 08:51:07 +08:00 |
|
|
|
7960063e0e
|
Signed AAB guardrails, injected signing args, IPA version train check, Play notes lint at build
|
2026-10-23 08:49:43 +08:00 |
|
|
|
9610c9477e
|
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 |
|
|
|
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 |
|
|
|
03ef999dac
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
9f40a9ea14
|
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)
|
2026-10-22 05:24:58 +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 |
|
|
|
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 |
|
|
|
46f3e56c09
|
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 |
|
|
|
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 |
|
|
|
dd9e059036
|
desktop coverage: apple game-center, play games and games status mapped to the Game services card
|
2026-10-21 05:29:55 +07:00 |
|
|
|
3116c230ae
|
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 |
|
|
|
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 |
|
|
|
ca7289b173
|
games: one config section for Game Center and Play Games Services (shared leaderboards and achievements); apple game-center (gameCenterDetails, gameCenterAppVersions, leaderboards, achievements and localizations, upsert by vendor id, read back); play games (Games Configuration API upsert, no POST retry); signing ensure adds GAME_CENTER when games.gameCenter
|
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 |
|