apple listing: asking for the version that is in review says it is locked (it said "already exists; a new version needs a higher number"); play images: a listing language missing from languages[] is skipped with the fix instead of stopping the run (play listing pushes its text). Both found by the live dry-run sweep; tests

This commit is contained in:
CRTkafa 2026-10-14 08:43:59 +08:00
parent 9d6f741092
commit b29f1c407c
4 changed files with 28 additions and 1 deletions

View file

@ -75,6 +75,10 @@ export function planVersion(rows: { id: string; attributes: Record<string, unkno
const base = { existing, first, changes: [] as FieldDiff[], attributes: {} as Record<string, string> };
const refuse = (reason: string): VersionPlan => ({ ...base, action: 'refuse', reason });
const taken = others.find(v => v.versionString === want);
// the version asked for is in review / pending release: it exists and is locked; "needs a higher number" would send
// the owner off to make a second version while the first is still in review
if (taken && IN_PROGRESS.has(taken.state))
return refuse(`version ${want} is ${taken.state}: App Store Connect locks its texts and build while it is in review or pending release (remove it from review in App Store Connect to change it, or wait for the release and then make the next version)`);
if (taken) return refuse(`version ${want} already exists (${taken.state}); a new version needs a higher number`);
const higher = others.filter(v => compareVersions(v.versionString, want) >= 0).sort((a, b) => compareVersions(b.versionString, a.versionString))[0];
if (higher && (!editable || editable.versionString !== want))