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

This commit is contained in:
CRTkafa 2026-10-21 05:03:02 +07:00
parent a6dab8f3aa
commit 335a4124ab
23 changed files with 486 additions and 74 deletions

View file

@ -1049,3 +1049,30 @@ that fails without the fix (see CONTRIBUTING.md).
smaller than asked, point `STOREBOUND_CHROME` at a current Chromium or record with `--source folder`.
- **Guard:** `recordSize` / `captureShortfall` in `cli/shots/devices.ts` (first frame size checked per clip, plus a
frames-per-second warning under 20); `tests/video.test.ts`.
## 86. Console plans behind the live pages (Play App content, IARC, App Privacy; 2026-10-21)
- **Symptom:** on a real run the health card offered "My app does not have any health features" while the sheet said
"Other" and verify said "not found"; Sign in details asked "Is any part of your app restricted? Yes / No" with an
"Add details" button; finance had its boxes on step 1 (step 2 is information only); App Privacy's "Additional Setup
Required" OK opened the first type's setup by itself; verify could not read Yes / No radios from text; a page
answered and then left with Next lost its answers; a keyword helper answered IARC "Digital purchases" No because its
text mentions "cash rewards", so the digital goods boxes and the loot-box / trading follow-ups never showed.
- **Do:** follow the plan's labels (new label first, `altLabels` as the fallback). On every Play page with a Save next
to Next: Save, wait for "Your changes have been saved", then Next. In App Privacy, a setup dialog that opened by
itself after the OK is the first type's: carry on there. Verify with the plan's `verify.capture` JSON
(`console verify <form> --from -`). Answer IARC by exact console labels only, never keyword sweeps over unanswered
groups; tick "Purchases of digital goods" after Yes on "Digital purchases".
- **Guard:** `cli/lib/console-play-plans.ts` (labels, step order, `INPUT_STATES_CAPTURE`), `saveBeforeNext` and the
exact-label `IN_PAGE_LOOP` in `cli/lib/console-plan.ts`, `parseStates` in `cli/lib/console-verify.ts`;
`tests/console-guardrails-1021.test.ts`.
## 87. "no review contact" with a reviewContact in the credentials file; whole help for a missing --version
- **Symptom:** `apple review-details` said "no review contact" while `.storebound/credentials.json` had
`reviewContact { firstName, lastName, phone, email }` (only the project folder's own file was read, under one key);
`apple listing` without `--version` (or with `--version` and no value) printed usage text or went on with "true".
- **Do:** update storebound. The contact is read from the project's file, the same file in parent folders up to the
repository root and the credential profile, under `reviewContact` (also `apple.reviewContact`, `appReview.contact`,
ASC field names); when none is found the error lists every file and key checked. Missing required values are one
line: "--version <x.y.z> is required (storebound apple status shows the editable version)".
- **Guard:** `findReviewContact` / `noContactMessage` in `cli/lib/credentials.ts`, `Args.required` in
`cli/lib/args.ts` (listing, privacy-manifest, adhoc export, edit, resubmit); `tests/console-guardrails-1021.test.ts`.