store-only apps edit their listing on the store (storebound listing live / set: old -> new per field with the checks, a PATCH of only the edited fields; serve listing.set is the one store-only write, its token bound to the store ids; policy.rs STORE_ONLY_WRITES, write_with_confirm for store targets); screenshot captions per language and scene edited as a text edit of the shots copy JSON (JSON files keep their layout); Play content rating, target audience and App content answers in App info; docs/console-parity.md after the editors (73 rows: 55 complete, 18 with the reason) and tests/console-parity.test.ts keeping it honest
This commit is contained in:
parent
3cea2af4e1
commit
7ac028421a
33 changed files with 852 additions and 157 deletions
|
|
@ -170,8 +170,9 @@ host state file (`overrides_set`, every key checked in `workspace.rs`).
|
|||
`store:ios:<account>:<app id>:<bundle>;android:<account>:<package>`.
|
||||
- The host checks the target and the account kinds, and passes `virtual: { name, apple, play }`. The sidecar writes
|
||||
a minimal `storebound.config.json` (store ids, placeholder links) into its temp folder.
|
||||
- Only `apple.status`, `play.status`, `health`, `reviews.list`, `apple.testflight_status` and `apple.ppo_status` work
|
||||
this way (tabs Releases, Health, Reviews, TestFlight, Growth), and `portfolio.status` takes store-only entries.
|
||||
- Only `apple.status`, `play.status`, `health`, `reviews.list`, `apple.testflight_status`, `apple.ppo_status` and
|
||||
`listing.live` work this way (tabs Releases, Listings, Health, Reviews, TestFlight, Growth), plus the one write
|
||||
`listing.set` (listing text per language, see "Editors"), and `portfolio.status` takes store-only entries.
|
||||
- "Link a folder", "Start an app folder here" or "Import from fastlane" turn it into a full app.
|
||||
|
||||
### Settings
|
||||
|
|
@ -218,8 +219,14 @@ is [console-parity.md](console-parity.md).
|
|||
first, then the native dialog, then the real run. Price changes of live products stay the owner's price decision.
|
||||
- **Pull from the store** (`play.listing_pull`, `apple.listing_pull`): the live texts into the files, the diff in the
|
||||
dialog first; unsaved edits stay pending on top.
|
||||
- **Store-only apps** (no folder) stay read-only in the window: a store write sends what the files hold (see
|
||||
console-parity.md).
|
||||
- **Store-only apps** (no folder) get a Listings tab too: the live texts per language (`listing.live` = `storebound
|
||||
listing live`), edited with the same counters and checks and applied straight to the store per language
|
||||
(`listing.set` = `storebound listing set`: the store's dry run in the window, the native dialog, a PATCH of only the
|
||||
edited fields). It is the one write a store-only app may run (`VIRTUAL_WRITES` in serve.ts, `STORE_ONLY_WRITES` in
|
||||
policy.rs); its token is bound to the store ids instead of a folder. URLs, contact, catalog and art need an app
|
||||
folder (they send what its config holds).
|
||||
- **Captions:** the screenshot captions per language and scene (the shots copy file) are edited in Store art as a
|
||||
text edit of the JSON (its own layout, one scene per line, stays).
|
||||
- `tests/edit.test.ts` (round trips, checks, dry run, CLI), `apps/desktop/tests/edits.test.ts` (unsaved edits, undo),
|
||||
and the boot check's editor case (edit a field, counter and limit check, review, save: the fixture file changes by
|
||||
one line, the config keeps its comments, Apply shows the dry run per language).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue