Related: #846, #950, #951. TypeScript 5.7.3 and current Home differ on a forward/recursive generic interface with inherited index signatures. Minimal strict/noEmit source:
interface Alpha<T> { make(): Beta<T> }
interface MixedBase<T> { readonly [key: string]: T | (() => Beta<T>); [index: number]: T }
interface Beta<T> extends Alpha<T>, MixedBase<T> {}
declare const alpha: Alpha<number>;
const beta = alpha.make();
beta["new"] = 2;
beta[0] = 2;
beta["0"] = 2;TypeScript 5.7.3 reports only TS2542 at line 6, naming Beta<number>. Home reports TS2542 naming Beta<T> and an additional TS2322 at line 7 because it checks the mutable number index against unresolved T. The string-index write must fail and the number/numeric-string writes must remain legal. The generic-interface refresh and forward instantiation paths in packages/ts_checker/src/check.zig are candidates to inspect, but root cause has not yet been established. Fix the concrete substitution rather than suppressing TS2322; add checker/Program/CLI regressions and verify under the 3,840 MB guard. Keep #951 focused on readonly-domain provenance, with this issue tracking the separate concrete-generic instantiation failure.