Follow-up to #473 and #416. The pre-admission async audit uses identical strict/noEmit/noLib/skipLibCheck/ES2022 inputs and unchanged Promise, PromiseLike, Awaited and PromiseConstructor declarations extracted from TypeScript 6.0.3. Pinned TS 6.0.3 and native TS 7.0.2 reject both independently isolated controls with TS2322; Home silently accepts both:
declare const pending: Promise<{ label: string }>;
async function chained() {
const result = await pending.then(value => value.label);
const good: string = result;
const bad: number = result;
}declare const numeric: Promise<number>;
declare const text: PromiseLike<string>;
async function combined() {
const result = await Promise.all([numeric, text] as const);
const good: number = result[0];
const bad: string = result[0];
}Source audit: synthesized structural Promise members and global Promise statics currently have permissive any returns. Fix type propagation through real shared declarations/general generic signatures; do not implement benchmark-specific spelling or source shortcuts. Include plain results, PromiseLike assimilation, rejection branches/defaults, readonly tuple positions, negative controls and declaration shadowing as appropriate. Async remains excluded from timing until all controls pass. Separate from primitive function-return enforcement #474.