Forward alias lookup can freeze an unresolved placeholder inside an earlier interface element type. This blocks #863 and full Zod admission under #548.
Evidence from the exact-main candidate (source parent 65a0332, qualified patch 0e43dc4, native 754926f):
- Four paired declaration-order variants: TS6/native TS7 satisfy all 16 contracts; candidate satisfies 2/8 and fails 6/8. Positives gain false TS2339; negatives lose the required TS2322 and instead emit another TS2339.
- Moving Part after ModelDef reproduces the original Zod symptom. Moving only the schema interface does not. Forward LiteralPart also fails. Original library sources are unchanged.
- A diagnostic-only executable using production project admission, resolver, checker and rendering matches all 243 original Zod diagnostic locations/codes, admits 106/106 files, and shows part is Primitive.unknown before the original typeof guard on all six observed passes. It also matches all eight reduction diagnostic sets.
- Callback-body and local type/value-name controls all satisfy their candidate/reference contracts; these do not explain the defect.
Suspected mechanism: preRegisterTypeAlias uses a primitive unknown for nonrecursive aliases. Type-name lookup returns it before forward declaration recovery, and an earlier interface shape can retain it after the alias body is checked. Preserve declaration ownership and transparent alias identity rather than overwrite nested fields opportunistically.
Acceptance:
- All forward-order positives silently succeed and every negative retains exactly one TS2322 plus one TS2339 under the same strict reference/candidate configuration.
- Add direct checker and complete Program regressions, including forward alias-to-alias references, explicit unknown aliases, lexical/virtual-section ownership and productive/circular recursion contracts.
- No declaration-reordering workaround, added any erasure, new cutoff, skipped body, diagnostic suppression or weakened contract.
- Run unfiltered checker/Program/driver/CLI/entrypoint suites, unchanged extended/protocol 5 admission, and the full unchanged Zod graph. Classify every diagnostic delta before timing/adoption.
- Publish checksummed full raw evidence and document benchmark/qualification results, with a brief README table and link. Timing must use the exact parent and retain all samples.
Full reduction inputs/output are currently retained in home-ts-forward-part-controls.lTzq5k; original-project trace/image and copied production entrypoint in home-ts-project-surface-diagnostic.AFdbFb. A direct checker regression is running unfiltered. Evidence publication follows the terminal gate result; no implementation or speedup is claimed.
Links: https://github.com/home-lang/home/issues/863#issuecomment-6113421415 and https://github.com/home-lang/home/issues/863#issuecomment-6113347977