Skip to content

feat: wire TypeScript and JavaScript universal candidates - #190

Merged
forhappy merged 62 commits into
mainfrom
codex/typescript-javascript-graph-quality
Aug 8, 2026
Merged

feat: wire TypeScript and JavaScript universal candidates#190
forhappy merged 62 commits into
mainfrom
codex/typescript-javascript-graph-quality

Conversation

@forhappy

@forhappy forhappy commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Route TypeScript and JavaScript production extraction through the registered
universal semantic candidate. Compass now uses one deterministic source-backed
path for normal builds and qualification fixtures, so universal evidence is
available to users instead of being qualification-only.

What changed

  • Registered compass.typescript.candidate and compass.javascript.candidate
    as the production universal adapters, with TSX canonicalized to TypeScript.
  • Emit source-anchored declarations, definitions, imports, re-exports,
    references, calls, constructions, heritage, aliases, members, JSX values,
    decorators, resources, and type-query evidence with explicit provenance.
  • Wire project-wide TypeScript/JavaScript inventory and resolution for local
    modules, package conditions, aliases, re-exports, callable values, and
    framework route targets while preserving ambiguity and unresolved states.
  • Preserve framework-owned convention nodes and source locations through
    universal merging, including Express/Next/Fastify/Hono/Remix-style routes.
  • Keep graph identities, relationship direction, multiplicity, source ranges,
    cache reuse, and deterministic publication stable across clean, warm, rebuilt,
    restored, and alternate-checkout builds.
  • Update the universal evidence reference, language architecture, managed
    analyzer guidance, qualification manifest, and changelog.

Impact

Compass no longer falls back to the legacy JavaScript/TypeScript extractor for
production graph generation. Cross-file and framework-aware graph quality now
comes from the same universal candidate that is independently qualified, with
fail-closed handling for ambiguous or unsupported bindings.

Validation

  • cargo fmt --all -- --check
  • cargo test --workspace --lib --bins --locked
  • cargo clippy --workspace --lib --bins --locked -- -D warnings
  • cargo test -p compass-languages --test typescript_universal_candidate --locked
  • cargo test -p compass-resolve --test typescript_routes --locked
  • sh scripts/check_product_boundary.sh
  • CARGO_TARGET_DIR=/Volumes/Workspace/crabbuild-target/compass-6923-inline ./scripts/qualify_code_graph_v1.sh --fixtures-only

Qualification passed with 57 languages, 1,041 coverage records, 1,773
invariants, 27 exact framework flows, and byte-identical clean/warm/rebuild/
restored/alternate outputs. Graph digest:
sha256:26a8e78a4c340627ccecc80042d21c9caed54604133c555bb5e4763a891da6c4.

This remains a draft PR for review of the production hard cut.

@forhappy forhappy changed the title feat: qualify TypeScript and JavaScript graph evidence feat: wire TypeScript and JavaScript universal candidates Aug 8, 2026
@forhappy
forhappy marked this pull request as ready for review August 8, 2026 02:04
forhappy added 28 commits August 7, 2026 19:06
forhappy added 28 commits August 7, 2026 19:06
@forhappy
forhappy force-pushed the codex/typescript-javascript-graph-quality branch from dc7b9da to c2562f9 Compare August 8, 2026 02:07
@forhappy
forhappy merged commit d89d9d1 into main Aug 8, 2026
10 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant