|
|
8573c9f6ae
|
flags.json: regenerated
|
2026-11-08 15:18:12 +07:00 |
|
|
|
68467ffe9b
|
apple build --platform macos: --tauri takes tauri.<name>.conf.json (tauri.appstore.conf.json found by itself), entitlements from --entitlements / apple.macos.entitlements / the merged config, Developer-ID-only keys refused or warned
|
2026-11-03 23:40:25 +07:00 |
|
|
|
1e47c2ee60
|
apple.macos listing / review notes per platform + iOS-only claim warnings; apple upload of a .pkg: bounded pkgutil, macOS processing wait, heartbeats; release 409 pattern
|
2026-11-03 23:40:25 +07:00 |
|
|
|
d0f568ebc2
|
validate: removed-from-sale IAPs are no blockers; shots capture --device landscape (Mac / Chromebook frames from a web build); playwright lookup says why each place failed
|
2026-11-03 23:14:34 +07:00 |
|
|
|
3a8d9d7551
|
flags: regenerate for the new apple build / flow options
|
2026-11-02 18:19:50 +07:00 |
|
|
|
c500866295
|
mcp --http --public: key-less public server (skills, pitfalls, limits, listing lint, App Store search), rate limit, 64 KB bodies
|
2026-10-29 19:06:14 +07:00 |
|
|
|
a108aae53f
|
mcp --http: --broker-profiles (store keys from the broker vault, memory only), --read-only, project by folder name under the roots
|
2026-10-29 18:38:11 +07:00 |
|
|
|
5f73fcbcf4
|
mcp --http: one Streamable HTTP server for every session (token or OAuth introspection auth, project argument per call, roots, origin check)
|
2026-10-29 16:19:53 +07:00 |
|
|
|
9a878d6562
|
apple upload: find the IPA of a build made with --out (build notes it in .storebound/last-apple-build.json; upload --out; the error names every folder searched and the last build's IPA)
|
2026-10-27 18:58:48 +07:00 |
|
|
|
85cf494c0a
|
apple: release type (apple.releaseType, apple release --after-approval|--manual), device-family preflight, TestFlight invite needs an installable build
|
2026-10-27 17:07:37 +07:00 |
|
|
|
f109c519ae
|
apple build: --derived-data (default <out>/DerivedData with --out), --path-free (Swift/clang prefix maps, no serialized debug options) and an archive path scan
|
2026-10-26 19:12:21 +07:00 |
|
|
|
ae9d26d3f6
|
Updates are agent steps: --yes ships an update of a live app (Play production, App Store submit / release) without an owner gate; the first release stays the owner's (exit 3 OWNER_STEP, --first-release); apple release is a ship step
|
2026-10-26 18:09:50 +07:00 |
|
|
|
5833776a4b
|
analytics and reports for a collector: store-only configs, --json snapshot, App Usage and Play install stock numbers, per-day sales ranges for both stores
|
2026-10-26 10:20:27 +07:00 |
|
|
|
304407e523
|
apple signing: App Group association fails early under automatic signing too (API capability + newest profile, steps and deep link, exit before the archive); console plan/verify apple-app-group
|
2026-10-25 22:35:36 +07:00 |
|
|
|
445ab1adbc
|
apple signing: every signable target (extensions, App Group check), build keychain unlock over SSH, api confirm docs
|
2026-10-24 13:07:58 +08:00 |
|
|
|
66247f35d9
|
flags: shots fonts --lang, capture --probe
|
2026-10-24 13:01:45 +08:00 |
|
|
|
5fc15dd773
|
apple build/upload: flags and help for the macOS Tauri path
|
2026-10-24 12:23:17 +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 |
|
|
|
a01c78aa20
|
generated API tables and flags refreshed for the play products clamp (Forgejo ci failed on stale api tables)
|
2026-10-23 15:56:36 +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 |
|
|
|
6abc1f65dd
|
Merge origin/main (0.8.42 tag, not published); API tables and flags regenerated
|
2026-10-23 13:16:13 +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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
4b0f9cd5b8
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
9c1f146c05
|
flags regenerated
|
2026-10-21 05:36:12 +07:00 |
|
|
|
567d6ca181
|
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 |
|
|
|
26f0723641
|
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 |
|
|
|
9f48dd57a4
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
183579449c
|
apple creative-assets: select Header and Search Results assets once processed (Prepare for Submission), not once approved: Apple reviews an asset only in a review submission, so 0.8.13 waited forever; upload and select in one run with a bounded processing wait; --add-for-review puts unreviewed assets into the draft review submission (never submits); --verify reads every slot back read-only (MCP apple_creative_assets_verify); a rejected file or one that failed processing twice is not re-uploaded, an archived copy is unarchived; fake commits library assets to PREPARE_FOR_SUBMISSION; pitfall 76 rewritten; apple-name check test only looks at name hints
|
2026-10-19 05:42:53 +07:00 |
|
|
|
e5369090fa
|
apple creative-assets: App Store Header and Search Results (PRODUCT_PAGE_HEADER_ASSET, APP_STORE_SEARCH_RESULTS_ASSET) through the App Asset Library: local size / alpha / video checks, upload once by MD5, select only approved assets, replace on a changed file; check / validate note, MCP tool, gallery and desktop Art row, docs, pitfall 75
|
2026-10-18 13:10:20 +07:00 |
|
|
|
af349b3db1
|
report: storebound report writes one shareable, self-contained readiness page (.storebound/reports/readiness-<date>.html; --md, --json, --no-open, --offline, --out) from scan, check and validate: a verdict per store (Ready to submit / N blockers / Not checked with the reason), findings per store by severity with guideline, evidence, fix and console button, the owner's compliance questions as a checklist, secrets masked; storebound.dev look, light / dark, print; desktop Checks > Report (same code path, opens through project_reveal) and its Markdown export on the same renderer; read-only MCP tool report
|
2026-10-18 01:42:03 +08:00 |
|
|
|
220e9bb072
|
play: an edit Play will not send for review (400 'set changesNotSentForReview to true', a game 1.0.1 (5) after a rejection) is validated and committed again on the same edit with changesNotSentForReview=true; dry runs validate that way and say so; prints the Publishing overview link (owner's button), records it in .storebound/ for play status; --not-sent-for-review on release / upload / rollout / listing / images and MCP / desktop; pitfall 72
|
2026-10-16 05:50:37 +08:00 |
|
|
|
992f5bcc0e
|
desktop: a Fix button on scan and validate findings storebound can fix itself. Findings carry action { method, args } (cli/lib/fix-actions.ts); privacy-labels runs scan.write (scan --write-only, the dialog shows the config diff), Play listing gaps play.listing, a missing App Store localization or copyright apple.listing (editable version only), the App Review contact apple.review_details; each a dry run, the native dialog, then the confirmed run. --write-only is forbidden for MCP tools; tests pin the mapping, the round trip on a fixture and that no fix reaches a submit, release or publish
|
2026-10-15 06:14:49 +08:00 |
|
|
|
daae3715bf
|
apple signing ensure with automatic signing only adds capabilities (no profiles or certificates; the dry run says so) and lists unused storebound profiles with the exact delete command, never run; every capability write is read back (lag retries, timeout) and fails with the API answers when one did not stick; apple status, signing status and validate compare the App ID, apple.signing.capabilities and the iOS project's entitlements (CODE_SIGN_ENTITLEMENTS too) and name what is missing where; api writes outside a terminal say TTY by design and name the dedicated command; pitfalls 64-66; tests
|
2026-10-14 19:10:01 +08:00 |
|
|
|
357319a775
|
--json prints only JSON on stdout (withJsonOutput around every command: logs, tables and prompts to stderr; printJson everywhere; test runs every --json command against the fake stores and parses stdout); prices ppp compares like with like: par = the store's own US-equivalent price (Play convertRegionPrices, Apple equalizations; offline base x fx x (1 + VAT) rounded up) scaled by the PPP price level; defaults only lower, only price levels <= 0.5, World Bank high-income at par, CN at par on Apple and skipped on Play, never above par (--only-decreases, --max-ratio, --min-ratio, --max-level, --include-high-income; --floor / --ceiling kept), top-10 revenue market drops > 20 % warned (sales reports, else a static list), unchanged regions out of the sheet; price changes of existing products only with --allow-price-changes, TTY or not (a terminal yes covered them), then their own question listing each old -> new, held section in dry runs (play products, prices import, play / apple subscriptions); pitfalls 61-63; tests
|
2026-10-14 17:36:00 +08:00 |
|
|
|
bab3f63227
|
whats-new drafts from player-facing notes first (whatsNew.source, docs/RELEASE-<version>.md, the CHANGELOG section of the version or Unreleased; --release, --from-git) and only then from the git log; internal jargon warnings (SDK / vendor names, developer and version-control words, file paths, issue ids, code identifiers) with plain alternatives in the draft and whats-new check, one list in cli/lib/jargon.ts, whatsNew.allowWords keeps a word; skill: write from what players feel, never from commit messages; tests
|
2026-10-14 14:45:19 +08:00 |
|