ReviewOS

home-lang/home

fix(ts): make export-fact traversal complete without depth cutoffs

#843
Open chris opened this 8 days ago ·
8 days ago

Current status (2026-10-08 UTC)

The export-fact eight-layer cutoff is removed in 929d46a67. A request-local dependency worklist retains bound owners, propagates changed facts through cycles without recursive native-stack traversal, and uses complete origin restriction provenance. It does not raise the numeric limit. Star edges now exclude default according to the language rule.

Keep this issue open for its broader acceptance scope. The final real .ts default-import CLI oracle still silently accepts an invalid import on both parent and candidate, unlike TS1192. Program fact correctness alone does not fix that checker path; #845 tracks it explicitly. Broader deep namespace/readonly/named-default controls and fair rejection/admission coverage remain to be completed. Unrelated virtual checker limitations and the existing directory/index star policy are not claimed removed.

Verified controls

  • Full suites: Program 237, checker 4493, driver 199, CLI 74, entrypoint 33; final Program/CLI/entrypoint reruns passed after the last star-edge change. Harness 128 tests passed; no named test filters.
  • TS 6.0.3 exact code/count/position/message and success/error exit parity on six 1/8/32-layer valid/isolated cases (32 has a cycle) and 24 enum flag/access cases, combined with #844.
  • Unit controls retain generic/call-only/value/type/const-enum facts, cyclic type-only provenance, repeated queries, shared/conflicting diamond origins, aliases, missing names and default-star exclusion. The initial red default-star test is retained.
  • Pinned unmodified Zod, all 106 files: complete 196 TS + 3 HM9002 diagnostic multiset unchanged, zero additions/removals. This is not production admission.
  • Zig formatting/diff checks passed. Pickier still exits 1 on the same 22,074 repository-wide problems; no unrelated auto-fixes.

Costs and evidence

Exact integrated parent: 53167b7e5. Independent unchanged graph confirmation: 13.802 → 14.197 ms, 11/30 faster pairs, saving interval −1.061 to +0.137 ms. Scale 4096: 1384.203 → 1405.088 ms, 5/10, −122.538 to +21.693 ms. No demonstrated speedup or equivalence. Large-predicate screen: 3.1% slower, entirely negative saving interval; independent 30-pair recheck: 0.5% slower, interval spans zero. Both retained, not discarded. Do not time the deep projects the parent fails for an A/B claim.

Published docs/README/evidence retain 592 pair rounds, 448 passing admissions across eight earlier/final phases and 6,206 verified checksums. Report, archive; archive SHA-256 705bcf5818d80aaf4138ee9afc0efbe894af8049233dc2056a5f830ebf0e09cf.

Candidate binary SHA-256 60a373098fec224c39210a11ecfdc131d90c37a4038062bacfe4993def434fb4; patch SHA-256 85048a88010224db3292b5637e6cafb5daf2eefb64a2d91ff8201240b27650a7. Chris pushed conventional issue-linked commits directly to origin/main, without coauthors. Earlier findings/failures remain in comments and raw evidence. Related #416, #839, #844, #845, #548.

8 days ago

The separate storage optimization is pushed as 30d3824, with full semantic/performance evidence published in a444cf0. docs/docs/TS_PERFORMANCE.md explicitly states that the existing eight-level cutoff is NOT removed or certified by reuse. Full source gates pass and the unchanged production diagnostic identity set is retained, but no deep-chain oracle or complete unbounded fact traversal has yet been implemented for this issue. This issue remains an outstanding correctness requirement toward #416; increasing the numeric bound or adding source-name special cases is not an acceptable fix.

8 days ago

The parent failure is now demonstrated, not only inferred: a 32-layer mixed named/star graph with a cycle and generic/call-only/const-enum/type-space/missing controls fails the new Program assertion while all other 231 tests pass (no skipped tests; unchanged guard peak 3036 MiB). CLI TypeScript accepts the valid 8/32-layer fixtures without diagnostics; frozen Home parent reports TS2305/TS2724. Initial isolated-mode fixtures also reveal unrelated type-reexport diagnostics, so they are being separated/corrected before becoming an acceptance contract; initial raw records/input hashes are preserved. An uncommitted prototype replaces recursive depth-bounded evaluation with a request-local owner/name dependency worklist and parent wakeups, reusing immutable query owners. It has no numeric traversal cutoff or native recursive call stack. Canonical restriction provenance is taken from the complete origin worklist rather than discovery timing. Formatting/AST/diff checks pass after an AST-detected variable-shadow typo was fixed before compiler execution. Exact draft patch aa01473b9621f60215794b4a29532939f5af7b7ba8bac632d186f28a0a70d8f9 is preserved. Complete Program validation is queued behind a confirmed live shared runner; no semantic success, speed claim or source commit is made for the prototype yet.

8 days ago

Worklist prototype now passes all 232 Program tests (including the parent-red 32-layer cyclic metadata control), peak 3213 MiB under the unchanged guard. First compiler attempt failed before tests because Zig 2163 uses Struct.field_names/field_types rather than the older fields reflection API; that actual error is corrected and is not counted as a pass. The candidate ReleaseFast/strip compiler builds successfully, peak 3055 MiB, frozen SHA-256 5f0008127ff9782b441b609fc1ffea1d5612e39b975d326eab626d4b900c7f45. Exact source patch 8eb2a3d745de1f3d0e75db41c821b6ab3f34dbc5d21110c4e6f16acc7018b625 remains uncommitted. Corrected CLI oracles: valid depth 1/8/32 all pass TS 6 and candidate; parent fails depth 8/32 with TS2305. The complete unchanged 106-file Zod diagnostic multisets match exactly (196 TS + 3 HM9002), zero additions/removals, observed parent/candidate peaks 939/949 MiB. However isolated-mode parity is still broken by the independently verified shallow const-enum diagnostic bug #844. With complete deep facts, more erroneous re-export TS2748 reports become visible (32-layer candidate has 18 vs the oracle one). Acceptance is HELD, not claimed complete or waived: #844 and additional cyclic/provenance/deep-field controls must be resolved before this can be safely published. No new benchmark result, resource relaxation, test exclusion or source commit.

8 days ago

Combined worklist/diagnostic/config candidate now has exact same-input oracle parity: 24 none/isolated/verbatim/both mode cases and six 1/8/32-layer cases match TS 6 code/count/primary position/message and success-vs-error status. Full checker 4485, Program 232, driver 198, core CLI 74, entrypoint 33 and harness 128 pass. Full pinned Zod identity multisets remain equal (196 TS + 3 HM9002, zero additions/removals). Acceptance is still held for broader cyclic/provenance coverage and cost/documentation. First performance and repository-lint attempts exited 123 BEFORE execution because disk fell to 861 MiB below unchanged 1024 MiB floor; neither is counted as a result. After an authoritative external headroom recovery above the floor, fresh guarded attempts are queued. Source remains uncommitted; no limit or fixture contract was relaxed.

8 days ago

External headroom recovery allowed the real unchanged-workload screen to complete with every sample/fingerprint and 56 admissions retained. Official graph median 13.145 -> 13.390 ms, 7/20 paired wins, saving 95% t interval -1.330 to +0.185 ms. Same-generator 4096 scale 1.272 -> 1.257 s, 4/6 wins, interval -26.151 to +55.733 ms. These overlapping intervals prove neither a speedup nor equivalence. Independent 30/10-pair confirmation and all-20-family screen are queued; complete semantics will not be replaced with a numeric depth workaround to win a row. All 30 correctness oracle cases match TS 6 exact diagnostic identities/messages; full suites and production identity gate pass. Source remains uncommitted pending remaining graph controls and accepted evidence. Earlier capacity refusals are retained separately, not samples or lint passes.

8 days ago

Independent cost confirmation on unchanged admitted workloads is near-flat, not a claimed speedup: official median 13.531 -> 13.629 ms (15/30 wins; saving CI -0.974 to +1.279 ms), same-generator scale 1.331 -> 1.330 s (6/10 wins; CI -43.390 to +33.970 ms). The all-20-family screen has no interval entirely below zero, but startup has a >3% slower median (3.269 -> 3.662 ms, 2/10 wins; CI -0.574 to +0.048 ms). The predefined rule selects it for an independent 30-pair recheck, now queued; all adverse observations remain retained. Exact 30-case oracle parity, all complete suites and pinned Zod identity gate still pass. Repository Pickier actually finishes with 22074 findings (11461 errors / 10613 warnings), not a clean pass; earlier refusals remain failures before execution. Source remains uncommitted pending graph coverage and final acceptance. No numeric cutoff is restored for a faster timing.

8 days ago

Independent startup recheck completes on the unchanged selected workload: 3.308 -> 3.054 ms, 30/30 candidate wins, paired saving 95% t interval +0.205 to +0.295 ms, with all fingerprints and raw observations retained. The initial >3% startup median slowdown does not reproduce; its adverse screen stays in evidence. Official/scale confirmation remains near-flat with intervals crossing zero, not an equivalence or speedup claim. Complete semantics are still required and no numeric cutoff is restored. Three-file source draft remains uncommitted pending remaining cycle/provenance/field controls and documentation; no new full-matrix or README speed claim is published. All complete source suites, exact 30-case TS oracle parity, 128 harness tests and identical pinned Zod diagnostic multisets remain verified. Actual repository lint exits 1 with 22074 findings; early guard refusals remain separate pre-execution failures.

8 days ago

Integrated the draft onto main 53167b7 with no conflicts. Full suites before the last control: Program 237, checker 4493, driver 199, CLI 74, entrypoint 33 all passed; all 30 same-input TS 6.0.3 oracle cases matched exits, code/count/position and messages. Added a direct export-star default exclusion control: it failed (236/237) and TS oracle reported TS1192. Fixed the star edge to exclude default according to the language rule; full Program is now 237/237 (3203 MB red / green log retained). Earlier parent/candidate full Zod identities matched all 199 entries (196 TS errors + 3 HM9002), not a correctness admission. Rebuilding the final CLI and measuring against exact integrated parent; old near-flat timing evidence remains historical, no new speed claim. Source remains uncommitted pending final gates and evidence publication.

8 days ago

Final CLI gate exposed an additional pre-existing diagnostic gap: the Program star/default unit is now green, but real ordinary .ts default imports still bypass TS1192 checking. Opened #845 with exact failing same-input oracle, parent/candidate hashes and the suffix-restricted Program checker path. This failed final gate is retained and is not counted as an admission pass. All original 30 enum/depth oracle cases still match exact messages/identities; full Zod remains 196 TS + 3 HM9002 with zero identity changes. Final exact-parent screen on existing admitted workloads is near-flat: graph medians 14.354 -> 14.125 ms (10/20 faster pairs), scale 1.382 -> 1.417 s (2/6); both saving intervals include zero. Independent confirmation and all-family cost screen pending. Keep this issue open for broader acceptance, including #845; no universal correctness or speed claim.

8 days ago

Published as Chris directly to origin/main: 929d46a, fix(ts): evaluate export facts with a cycle-safe worklist (#843), no coauthors. Dependency worklist retains bound owners and canonical restriction provenance without the eight-layer cutoff; star edges correctly exclude default. Final Program 237/237 and 30 exact TS enum/depth/cyclic cases passed. Final CLI default-import oracle still fails (same on parent), tracked under #845; this is not a full-default acceptance claim. Final Zod diagnostic multiset remains exactly 196 TS + 3 HM9002. Source binary SHA-256 60a373098fec224c39210a11ecfdc131d90c37a4038062bacfe4993def434fb4. Exact-parent timing confirmation/family screen are queued on the shared machine lock. Separate docs/raw-evidence chunk follows; issue remains open for the full acceptance scope.

Sign in to comment on this issue.