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

This commit is contained in:
CRTkafa 2026-10-20 03:29:19 +07:00
parent 30488c512d
commit e59539fec8
26 changed files with 532 additions and 67 deletions

View file

@ -978,3 +978,19 @@ that fails without the fix (see CONTRIBUTING.md).
every version; validate and release status warn about another platform's editable or rejected version.
- **Guard:** `cli/apple/platform.ts` (`pickPlatform`, `parsePlatform`), `tests/apple-platforms.test.ts` (fake App Store
Connect: iOS 0.8.7 live, macOS 0.8.7 rejected in UNRESOLVED_ISSUES).
## 80. Screenshot text and logo hugging the edges; a Mac app with no screenshots; sheet.png timing out
- **Symptom:** a game's hero logo and titles touched the left / right / top edge of the screenshots (the stores crop
and round the corners, it reads cramped); a game with a macOS version had no Mac screenshots (storebound had no Mac
size); `shots render` stopped with "sheet.png ... Timeout 30000ms" on a project with 9 sizes.
- **Cause:** the templates padded the text by 5 % and drew the logo 86 % wide with a negative top margin, nothing
measured it; the size table only knew iPhone, iPad and Play; the contact sheet used the same flat 30 s wait as one
screenshot while decoding every image of the language.
- **Do:** keep the 7 % / 5 % safe margins (`shots check` code `margin` fails anything under 6 % / 4 %, measured from the
page's layout boxes in report.json); set `apple.mac: true` for a Mac app (`mac` size, 16:10, `APP_DESKTOP`, uploaded
with `apple screenshots --platform macos`) and capture landscape frames; the sheet's wait now scales with images,
sizes and load and logs a heartbeat (or use `--no-sheet`).
- **Guard:** `marginViolations` / `SAFE_MARGIN` and `renderDims` in `cli/shots/lib.ts`, `marginIssues` in
`cli/shots/report.ts`, `IMAGE_SPECS.mac` and `macNote` in `cli/shots/spec.ts`, `MAC_DISPLAY` in
`cli/apple/screenshots.ts`, `sheetTimeoutMs`; `tests/mac-landscape.test.ts`, `tests/browser/landscape.browser.ts`,
the macOS case in `tests/idempotency.test.ts`.