Repository navigation
[Epic][Calls] Remove the infrastructure blockers found in the 200-class screen #483
Description
Goal and evidence
Track the missing implementation required to expand the real TypeScript class experiment beyond the infrastructure frontier found in the frozen 200-class screen. This is an implementation/readiness map, separate from paper task #482 and the existing model-census/audit roadmap (#367/#368/#360).
The sealed v7 ledger contains 48 selected classes and 152 preordered reserves. First failures were: imports/dependencies 82, module initialization 93, class AST/reachability/instrumentation 18, input/state domains 4; only 3 surfaces were prepared. These are first gates, not 197 failed machine searches. Fixing a first gate can expose another prerequisite; it does not prove a class executable.
The five dynamic-import/require diagnostics are actually literal require('../package.json') sites. The 12 missing-local cases consist of 11 generated _ids dependencies and one rt.wat.js wrapper. Those concrete problems are tracked separately from general async/dynamic loading and from core execution semantics.
The 15 implementation tasks below fill the missing tracked scopes. The first-gate map covers all 197 rejected records and retains the three prepared records separately. All tasks reuse the existing Calls/PBT loader, domain, replay and observation contracts rather than replacing completed bounded foundations.
Already delivered or awaiting integration
- JacoDB Fix constructor parameter-property local bindings jacodb#437 is merged at 7b3ff240da5c79a365db175afbc5c0aab09366df; its parameter-property binding fix must not be recreated.
- USVM [Calls] Preserve reached inputs and measure native class coverage #479 implements input-only stopped-prefix/frontier candidates and separates checked native coverage from strict symbolic consistency; [TS Calls][Research] Capture stopped-path frontiers for article experiments #373 is the existing owning frontier task. The PR is currently open, not part of inspected main 19866c9.
- [TS PBT] Project property domains and preconditions into USVM #351/[TS PBT] Map Kotlin property definitions and source coverage to EtsIR #350/[TS PBT] Capture bounded property-scoped observations in original TypeScript #396, callable lexical-this [TS] Bind lexical this when calling stored arrow functions #440, catch semantics [TS] Route thrown exceptions into catch blocks #427 and property presence/deletion [TS] Evaluate property presence for the object in operator #425/[TS] Delete object properties across all value sorts #426 are completed bounded foundations. Extensions must not reopen or duplicate them.
Completion boundary
Maintain an immutable before/after ledger for the same 200 identities and the next exposed gaps. Preserve full class member surfaces, independently frozen domains, exact source-owned statement denominators, and failure/unsupported outcomes. Validate supported positive cases against original/instrumented native execution. Record new scientific domain/scope versions explicitly; never transfer the side-corpus K=string specialization to the original population silently.
The final readiness gate is an evidenced supported representative population and a 30/120s four-profile pilot. This epic does not promise that all 200 classes are supported by one permissive loader change or require positive comparative results.
Local source of truth: iccq2026-paper/experiments/class-coverage-round-robin-20261002/real-class-campaign-20261014/original/selection-ledger-v7.json and V7_INFRASTRUCTURE_FRONTIER.md; corrected machine diagnostic: real-class-machine-diagnostic-20261014/revised-protocol-v8/README.md.
First-gate implementation map
| First gate | Records | Owning task | Stage |
|---|---|---|---|
| External/aliased project imports | 64 | 484 | P0 |
| Missing generated/runtime local dependencies | 12 | 485 | P0 |
| Literal package.json require | 5 | 486 | P0 |
| Module initialization | 93 | 487 | P0 |
| Cyclic local module graph | 1 | 488 | P1 |
| Nested closure/callback source ownership | 11 | 489 | P1 |
| Inherited/static class lifecycle | 3 | 490 | P1 |
| Receiver aliases/private reachability | 2 | 491 | P1 |
| Destructured/rest invocation shapes | 2 | 492 | P1 |
| Indexed-record domains/state | 3 | 493 | P1 |
| Generic/union class domain policy | 1 | 494 | P1 |
| First rejected records | 197 |
Counts name the first saved rejection, not guaranteed admissions after fixing it. No feature task is credited with solving every record in its row.
Three prepared original records
| Class | Preserved v7 outcome | Current tracked continuation |
|---|---|---|
| Stats | Original primary plan admitted it; symbolic numeric-to-string remained limited | #496 plus #498 versioned re-audit |
| Perm | Full surface prepared, later source gate rejects const zeroCache = [] | #487 plus #498 |
| FaceNameSwizzler | Native probe succeeded; known frontend binding defect excluded primary inference | JacoDB PR #437 merged; integrate USVM PR #479 and re-check the class/frozen correctness-frontier evidence in #498 |
These later barriers do not add to the 197 first-rejection counts. Historical correctness evidence is retained; a revised frontend/scope must have its own source/native checks before the exclusion is changed.
Work beyond the first gate
-
498: P0 baseline tooling + final integration gate. Ship reusable discovery and replay the same 200-identity admission ledger. Its initial contract can land before feature work; its final readiness gate follows supported integrations.
-
496: P1 execution gap, observed in admitted Stats. Share symbolic numeric-to-string semantics across concatenation/String and coordinate Number.toString with [TS] Replace the constant toString call approximation #436 and mixed addition with [TS] Bug with add operator #310.
-
495: P2 additional side/follow-on domains, recursive graphs/aliases and source-attested callable/accessor state. Integrate existing callable storage/input tasks rather than recreating them.
-
497: P2 strict-diagnostic quality, complete symbolic exceptional observations. Native primary coverage of complete agreeing replays already works in [Calls] Preserve reached inputs and measure native class coverage #479; this task does not block it or restore the old strict gate.
Existing tasks and shared implementations
| Existing work | Role in this map |
|---|---|
| #373 / PR #479 | Actual class consumer now exists; stopped-prefix/queued input harvesting is implemented in the open PR, awaiting main integration and owning-issue acceptance. No duplicate frontier task. |
| #367 / #368 / #360 | Census, finite model-selection roadmap and semantic approximation audit; begin after classes reach the machine, reusing existing telemetry. They do not repair loader/domain gates by themselves. |
| #436 / #310 | Receiver-proven toString and mixed-kind addition; integrate the narrower shared symbolic-number formatting contract in #496. |
| #298 / #467 / #462 | Callable-field storage, runtime-sort changes and callable input synthesis; dependencies only for the corresponding branches of #489/#491/#495. |
| #388 | Existing direct/sparse array growth execution task; a follow-on runtime capability, not a newly fabricated count in this screen. |
| #359 | Type-relation/support boundaries; reusable for generic and structured domains. |
| JacoDB #400 | Generic superclass arguments/substitution for the generic-inheritance slice of #490/#494. Non-generic slices can land first. |
| JacoDB #319 | Synthetic/explicit constructor identity and method-list consistency for legacy/model-conversion class lifecycle cases. |
| Closed #350/#351/#396, #440, #425/#426/#427; merged JacoDB #378 | Bounded binding/domain/observation, lexical-this, property presence/deletion, catch routing and frontend module initialization foundations to reuse, not recreate or reopen. |
| #482 | Required article discussion of modeling effort/type-domain limits; editorial work, separate from implementation acceptance. |
Dependency and delivery order
-
Integrate PR [Calls] Preserve reached inputs and measure native class coverage #479; the JacoDB parameter-property fix [TS] Normalize negative indices in Array.fill #437 is already merged. Establish the [Calls] Ship reusable class discovery and re-audit the same frozen 200-class population #498 reusable discovery/identity/domain/diagnostic contract and reproduce the frozen baseline.
-
Run the P0 source tracks in parallel once their small shared contracts are agreed: [Calls] Support source-attested literal JSON require and import in class projects #486 literal JSON metadata, [Calls] Execute bounded module initialization consistently in symbolic and native preparation #487 bounded initialization/Perm, [Calls] Resolve frozen real-project imports with tsconfig and package metadata #484 project resolution and [Calls] Acquire and freeze generated sources and runtime assets for class preparation #485 generated assets. Start with the concrete small positive cases, then report each next gate.
-
Integrate [Calls] Preserve module identity and live bindings in cyclic source replay #488 module cycles after resolution and initialization; [Calls] Measure inherited and static class lifecycle without foreign-class coverage #490 lifecycle after initialization. Develop [Calls] Attribute nested closures and callbacks to a fixed class statement universe #489 closures, [Calls] Preserve destructured and rest class parameters in frozen scenarios #492 parameters and [Calls] Support bounded indexed-record inputs and complete class state snapshots #493/[Calls] Freeze explicit generic and union class input domains independently of outcomes #494 domains on the shared baseline contract. [Calls] Check private-member reachability through aliased and escaping receivers #491 receiver reachability consumes the closure contract.
-
Complete relevant runtime branches with existing tasks and [TS] Convert supported symbolic numeric values to strings across shared language routes #496. Keep [Calls] Reconstruct bounded recursive and executable object state without flattening it #495 deep/executable state and [Calls] Preserve complete symbolic exceptional observations for class replay diagnostics #497 strict exceptional snapshots identifiable as later integrations; they need not block unrelated supported pilots.
-
[Calls] Ship reusable class discovery and re-audit the same frozen 200-class population #498 rechecks all 200 identities after milestones, records next gaps, then freezes a supported representative pilot for all four profiles and 30/120s. Model census/audit [TS Calls] Build a real-project call census and model roadmap #367/[TS Calls] Audit and classify existing semantic approximations #368 and paper discussion [Paper] Discuss the engineering cost and type-domain limits of TypeScript models #482 consume that evidence.
flowchart TD
I["Integrate #479; JacoDB #437 merged"] --> B["#498 baseline discovery and frozen 200 ledger"]
B --> P["P0 project/asset/JSON/init: #484-#487"]
P --> C["#488 cycles"]
P --> L["#490 lifecycle"]
B --> K["#489 closures"]
B --> Q["#492 parameters"]
K --> A["#491 receiver aliases"]
B --> D["#493 records; #494 generics"]
B --> R["#496 numeric strings + existing runtime tasks"]
C --> F["#498 milestone audits and supported 30/120s pilot"]
L --> F
A --> F
Q --> F
D --> F
R --> F
F --> E["#367/#368 model evidence; #482 paper"]
Implementation checklist
-
484 — [Calls] Resolve frozen real-project imports with tsconfig and package metadata
-
485 — [Calls] Acquire and freeze generated sources and runtime assets for class preparation
-
486 — [Calls] Support source-attested literal JSON require and import in class projects
-
487 — [Calls] Execute bounded module initialization consistently in symbolic and native preparation
-
488 — [Calls] Preserve module identity and live bindings in cyclic source replay
-
489 — [Calls] Attribute nested closures and callbacks to a fixed class statement universe
-
490 — [Calls] Measure inherited and static class lifecycle without foreign-class coverage
-
491 — [Calls] Check private-member reachability through aliased and escaping receivers
-
492 — [Calls] Preserve destructured and rest class parameters in frozen scenarios
-
493 — [Calls] Support bounded indexed-record inputs and complete class state snapshots
-
494 — [Calls] Freeze explicit generic and union class input domains independently of outcomes
-
495 — [Calls] Reconstruct bounded recursive and executable object state without flattening it
-
496 — [TS] Convert supported symbolic numeric values to strings across shared language routes
-
497 — [Calls] Preserve complete symbolic exceptional observations for class replay diagnostics
-
498 — [Calls] Ship reusable class discovery and re-audit the same frozen 200-class population
Activity