Skip to content

refactor(ingestion): delete legacy call-resolution DAG + heritage processor (RING4-1, #942)#2023

Merged
magyargergo merged 12 commits into
abhigyanpatwari:mainfrom
magyargergo:refactor/942-delete-legacy-resolution
Jun 4, 2026
Merged

refactor(ingestion): delete legacy call-resolution DAG + heritage processor (RING4-1, #942)#2023
magyargergo merged 12 commits into
abhigyanpatwari:mainfrom
magyargergo:refactor/942-delete-legacy-resolution

Conversation

@magyargergo

Copy link
Copy Markdown
Collaborator

RING4-1: Delete legacy call-resolution DAG + heritage processor

Closes #942.

All 16 production languages (incl. Vue #940) are registry-primary, so the two legacy resolution legs only ran under the CI scope-parity gate — never in production. This retires them. Calls and inheritance now resolve exclusively through scope-resolution (Registry.lookup, preEmitInheritanceEdges, emitHeritageEdges, buildMroMethodDispatchIndex).

Net: 3 commits, ~−18k lines.

1. Delete the legacy resolution legs (d69a3d44)

  • Call-resolution DAG: call-processor.ts legacy body (processCalls, processCallsFromExtracted, resolveCallTarget + all resolver/dispatch/chain helpers), model/resolve.ts MRO-via-HeritageMap, model/heritage-map.ts, type-env DAG types; inferImplicitReceiver/selectDispatch LanguageProvider hooks + Ruby impls.
  • Legacy heritage path: heritage-processor.ts, heritage-types.ts, heritage-extractors/, @heritage.* tree-sitter queries, heritageExtractor/heritageDefaultEdge/interfaceNamePattern wiring, the worker + parse-impl heritage passes (parse-worker ↔ parsing-processor lockstep), and the gutted cross-file-impl.ts propagation.
  • Scope-parity infrastructure: removed entirely — with no legacy leg there is no parity to run. scripts/run-parity.ts, scripts/ci-list-migrated-languages.ts, .github/workflows/ci-scope-parity.yml, the test:parity script, and the scope-parity ci.yml gate are gone. The resolver integration tests still run in the normal tests job.
  • Kept (shared infra, not call-DAG-only): type-env.ts buildTypeEnv (field extraction / structure phase / embeddings), model/resolve.ts c3Linearize/gatherAncestors (graph MRO phase), route/fetch/exported-type-map helpers in call-processor.ts, preEmitInheritanceEdges (legacy-edge dedup simplified).
  • ARCHITECTURE.md updated to scope-resolution-only.

2. Review autofixes (7205b3f6)

  • parse-cache.ts: bumped SCHEMA_BUMP 2→3 (ParseWorkerResult lost its heritage field — invalidates stale caches, prevents a rollback replaying a heritage-less cache).
  • Dropped 3 now-unused type imports (eslint gate); refreshed stale doc pointers in AGENTS.md/CLAUDE.md to the deleted "§ Call-Resolution DAG" section (language-neutrality rule preserved).

3. Remove the vestigial isRegistryPrimary flag (87561e96)

With the DAG gone, REGISTRY_PRIMARY_<LANG> / isRegistryPrimary / MIGRATED_LANGUAGES had one meaningful state and a =0 override could only disable resolution with no fallback. Removed registry-primary-flag.ts + the dead shadow-harness.ts; the three flag gates collapse behavior-preservingly (SCOPE_RESOLVERS == MIGRATED_LANGUAGES). Adding a language is now a single SCOPE_RESOLVERS registration.

Acceptance (per #942)

  • ✅ Grep returns zero for resolveCallTarget, inferImplicitReceiver, selectDispatch, buildHeritageMap, HeritageMap, processHeritage, heritageExtractor, @heritage. across src + test.
  • tsc --noEmit clean (both packages).
  • ✅ Resolver integration suite green — bit-compatible EXTENDS/IMPLEMENTS/CALLS/IMPORTS for fixture corpora.
  • ✅ Scope-capture bench fingerprints unchanged (14 langs byte-identical; python re-baselined — removed redundant ignored captures, EXTENDS via @reference.inherits unchanged).
  • ARCHITECTURE.md documents inheritance/calls as scope-resolution-only.

Residual Review Findings

Surfaced by the code review, deliberately scoped out (not #942 defects):

  • P2 — parse-worker dead extraction. The worker still populates calls / assignments / constructorBindings on ParseWorkerResult (formerly consumed by the deferred call DAG); they now have no downstream reader. Harmless (confirmed by correctness review), but wasted CPU/memory. Removing them is a follow-up worker-result-schema cleanup (cache version already bumped here).
  • P3 — createResolverParityIt passthrough. test/integration/resolvers/helpers.ts now returns vitest's it unchanged; the 18 resolver test files still call it. Inlining to plain it is a mechanical follow-up.

magyargergo and others added 3 commits June 4, 2026 05:36
…cessor (abhigyanpatwari#942)

RING4-1: all 16 production languages (incl. Vue abhigyanpatwari#940) are registry-primary, so
the legacy resolution legs only ran under the now-removed CI parity gate. Calls
and inheritance now resolve exclusively through scope-resolution
(Registry.lookup, preEmitInheritanceEdges, emitHeritageEdges, buildMro →
MethodDispatchIndex).

Removed:
- Call-resolution DAG: call-processor.ts legacy body (processCalls,
  processCallsFromExtracted, resolveCallTarget + all resolver/dispatch/chain
  helpers), model/resolve.ts MRO-via-HeritageMap, model/heritage-map.ts,
  type-env DAG types; inferImplicitReceiver/selectDispatch LanguageProvider
  hooks + Ruby impls; DispatchDecision/ImplicitReceiverOverride/ReceiverEnriched.
- Legacy heritage path: heritage-processor.ts, heritage-types.ts,
  heritage-extractors/, @Heritage.* tree-sitter queries, heritageExtractor/
  heritageDefaultEdge/interfaceNamePattern wiring, worker + parse-impl heritage
  passes (parse-worker/parsing-processor lockstep), cross-file-impl DAG pass.
- Scope-parity infrastructure entirely (no legacy↔registry parity left to run):
  scripts/run-parity.ts, scripts/ci-list-migrated-languages.ts,
  ci-scope-parity.yml, test:parity, and the scope-parity ci.yml gate. Resolver
  integration tests still run via the normal tests job.

Kept (shared infra, NOT call-DAG-only): type-env.ts buildTypeEnv (field
extraction / structure phase / embeddings), model/resolve.ts c3Linearize +
gatherAncestors (mro-processor mroPhase), route/fetch/exported-type-map helpers
in call-processor.ts, preEmitInheritanceEdges (legacy-edge dedup simplified).

Acceptance: grep for resolveCallTarget/inferImplicitReceiver/selectDispatch/
buildHeritageMap/HeritageMap/processHeritage/heritageExtractor/@Heritage. is zero
across src + test. tsc clean (both packages); resolver integration suite green
(bit-compatible EXTENDS/IMPLEMENTS/CALLS); scope-capture fingerprints unchanged
(python re-baselined: removed redundant ignored captures). ARCHITECTURE.md
updated to scope-resolution-only.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ce-code-review autofix pass on the RING4-1 deletion:
- parse-cache.ts: bump SCHEMA_BUMP 2→3 — ParseWorkerResult lost its `heritage`
  field, so stale on-disk caches must invalidate (prevents a rollback replaying
  a heritage-less cache into legacy code) [api-contract P2].
- parse-impl.ts: drop 3 now-unused type imports (ExtractedCall,
  ExtractedAssignment, FileConstructorBindings) left by the deferred-block
  removal — would fail the eslint CI gate [correctness+maintainability P1].
- AGENTS.md / CLAUDE.md / scope-resolver.ts contract doc: fix stale pointers to
  the deleted "§ Call-Resolution DAG" section + removed hooks; preserve the
  language-neutrality rule [project-standards P1].
- registry-primary-flag.ts / cross-file.ts / parse-impl.ts: refresh stale
  comments referencing deleted symbols (legacy DAG, runCrossFileBindingPropagation).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…igyanpatwari#942)

With the legacy call-resolution DAG deleted, the per-language
`REGISTRY_PRIMARY_<LANG>` / `isRegistryPrimary` / `MIGRATED_LANGUAGES` flag had
only one meaningful state — every production language resolves via
scope-resolution — and an explicit `=0` override could only *disable*
resolution with no fallback (a footgun the review flagged). Removing it.

- Delete `registry-primary-flag.ts` and the now-dead `shadow-harness.ts`
  (legacy↔registry shadow-parity tool) + its test.
- Collapse the three flag gates to their behavior-preserving outcome
  (`SCOPE_RESOLVERS == MIGRATED_LANGUAGES`, so this is a no-op):
  - scope-resolution phase now runs for every registered `SCOPE_RESOLVERS`
    entry (was `∩ MIGRATED_LANGUAGES`).
  - import-processor `addImportGraphEdge` + parse-impl `shouldAccumulate`:
    the legacy emit/accumulate paths were already inert for migrated
    languages (scope-resolution owns IMPORTS via the imports-to-edges bridge);
    drop the flag term.
- Collapse flag-branching tests to the scope-resolution path and delete the
  csharp legacy-`=0`-leg describe blocks; remove the ruby/rust-scope env-forcing
  hooks (no-ops now).
- Refresh docs/comments (ARCHITECTURE.md "one registration", scope-resolver
  cookbook, phase deps) — adding a language is now a single `SCOPE_RESOLVERS`
  registration.

Verified: tsc clean (both packages); resolver integration tests green
(747 assertions across cobol/csharp/ruby/rust/typescript/go, IMPORTS edges
intact); grep for the flag symbols is zero across src + test.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 4, 2026

Copy link
Copy Markdown

@magyargergo is attempting to deploy a commit to the NexusCore Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

✨ PR Autofix

Found fixable formatting / unused-import issues across 12 changed lines. Comment /autofix on this PR to apply them, or run npm run lint:fix && npm run format locally.

{"schema":"gitnexus.pr-autofix/v2","state":"fixes-available","pr_number":2023,"changed_lines":12,"head_sha":"de42651a619372fc290ed440eaf9307eb3c95115","run_id":"26937817925","apply_command":"/autofix"}

@github-actions

github-actions Bot commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

CI Report

All checks passed

Pipeline Status

Stage Status Details
✅ Typecheck success tsc --noEmit
✅ Tests success unit tests, 3 platforms
✅ E2E success gitnexus-web changes only

Test Results

Tests Passed Failed Skipped Duration
10585 10569 0 16 586s

✅ All 10569 tests passed

16 test(s) skipped — expand for details
  • COBOL pipeline benchmark > scales with file count
  • C++ ADL emit benchmark > emit phase scales sub-quadratically with co-scaled files and sites
  • C++ pipeline benchmark > scales with file count
  • C# pipeline benchmark > scales with file count — namespaces spread across the solution
  • C# pipeline benchmark > scales with file count — all types in one (global) namespace bucket
  • C# pipeline benchmark > scales with file count — all types in one (named) namespace bucket
  • Go pipeline benchmark > scales with file count (workers enabled)
  • Go pipeline benchmark — worker pool (issue Worker idle timeout kills long Go scope extraction and surfaces as Napi::Error during analyze #1848) > does not quarantine the large generated Go file on sub-batch idle timeout
  • Go structural interface detection benchmark > scales linearly with interface × struct count
  • Go structural interface detection split-phase benchmark > separates index-build and detection time
  • PHP pipeline benchmark > scales with file count (workers enabled)
  • Ruby pipeline benchmark > scales with file count (workers enabled)
  • Rust pipeline benchmark > scales with file count (workers enabled)
  • Vue pipeline benchmark > scales with component count
  • run.cjs direct-exec entrypoint (fix(cli): steer docs, skills, and hooks through a CLI-neutral project-local runner (#1939) #1945) > resolves a .cmd shim via the Windows shell branch, passing args and exit code
  • buildTypeEnv > known limitations (documented skip tests) > Ruby block parameter: users.each { |user| } — closure param inference, different feature

Code Coverage

Tests

Metric Coverage Covered Base Delta Status
Statements 80.36% 37329/46448 N/A% 🟢 ████████████████░░░░
Branches 69.05% 23728/34359 N/A% 🟢 █████████████░░░░░░░
Functions 85.58% 3912/4571 N/A% 🟢 █████████████████░░░
Lines 84.03% 33599/39984 N/A% 🟢 ████████████████░░░░

📋 View full run · Generated by CI

…re fingerprints (abhigyanpatwari#942)

Two CI failures from the abhigyanpatwari#942 cleanup, surfaced by the tri-review + CI:

- tree-sitter-languages.test.ts: two tests asserted `@heritage.*` captures
  (Rust trait-impl, Dart extends/implements/with) that this PR removed. The
  acceptance grep used `@heritage\.` (with `@`); these reference the runtime
  capture name `heritage.trait` (no `@`), so they slipped the earlier sweep.
  Inheritance is now covered by the resolver integration suite. (fixed macos-latest)

- Re-baselined the scope-capture bench fingerprints for csharp/rust/ruby/java/
  javascript/kotlin (baselines.json) + python (python-scope/baseline-fingerprint.txt).
  The earlier test-cleanup reworded comments inside the lang-resolution fixture
  files (Shapes.cs, child.rs, derived.rb, IA.java/Plain.java, Service.js, F.kt,
  app.py) to scrub deleted-symbol references for the acceptance grep; those are
  the bench corpus, so capture node positions shifted. Capture LOGIC is
  unchanged — verified `--check` passes for all 14 langs + python. (fixed benchmarks)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

@magyargergo magyargergo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tri-review — RING4-1 legacy-resolution deletion (#942)

Methods (engine breakdown): Codex gpt-5.5/xhigh — the one independent engine, live with structured output — plus 5 Claude lanes (GitNexus risk & test-CI; CE correctness, adversarial, maintainability). Note: two of three methods are Claude under different persona prompts (correlated priors), so the strong signal is Codex + a Claude lane agreeing. The two gitnexus-* lanes ended mid-investigation (a known partial-return mode); their domains — production risk and resolver-coverage-after-parity-removal — were independently covered by correctness, adversarial, and Codex, so no domain went unreviewed.

Verdict: the deletion is sound. Two CI breakages were found and fixed during review.

Strongly corroborated CLEAN (zero P0/P1): the independent engine (Codex) and both Opus lanes (correctness, adversarial) independently refuted every correctness/risk concern, each with file:line evidence — all [code-read] (worktrees can't build, so nothing is [reproduced]):

  • SCOPE_RESOLVERS == MIGRATED_LANGUAGES verified (identical 16-language set, set-diff empty both ways) → the isRegistryPrimary flag-gate collapses are behavior-preserving. [Codex + correctness]
  • The empty parentMap in parse-worker is benign — every consumer of the worker typeEnv (calls/assignments/exportedTypeMap) is dead; scope-resolution does its own inheritance-aware inference. [correctness + adversarial + Codex]
  • call-processor.ts carve: kept route/fetch/exported-type-map functions are byte-identical with complete imports; Ruby include/extend/prepend still emit via scope-resolution's __heritage__ lane (the worker path was already dark for registry-primary Ruby). [3 lanes]
  • model/resolve.ts kept c3Linearize/gatherAncestors self-contained; mro-processor builds the parentMap from graph EXTENDS/IMPLEMENTS. [correctness + Codex]
  • parse-cache SCHEMA_BUMP 2→3 correctly invalidates the ParseWorkerResult.heritage-field removal. [3 lanes]

CI breakages caught by this review — both FIXED in 6d8dc51f

  1. macos-latesttree-sitter-languages.test.ts asserted @heritage.* captures (Rust trait-impl, Dart extends/implements/with) the PR removed. The acceptance grep used @heritage\. (with @); these reference the runtime capture name heritage.trait (no @), so they slipped the sweep. Removed (inheritance is covered by the resolver suite). [surfaced by the synthesis-critic + CI]
  2. benchmarks (GITNEXUS_BENCH) — the test-cleanup reworded comments inside 7 lang-resolution bench-corpus fixtures, shifting capture node positions → 6 scope-capture + 1 python fingerprint drifted. Re-baselined (capture logic unchanged; --check passes for all 14 langs + python). [root-caused via local repro]

Non-blocking follow-ups (P2/P3, no correctness impact)

  • [P3] TESTING.md + scripts/bench-scope-resolution.ts still reference the removed REGISTRY_PRIMARY_<LANG> flag (the cleanup missed these two non-src/test files). [adversarial]
  • [P3] Stale doc-comments → deleted files: ruby/scope-resolver.ts (heritage-map.ts), php/captures.ts (heritage-processor.ts). [adversarial + maintainability]
  • [P2] WorkerExtractedData.calls/assignments/constructorBindings are populated by the worker + crossed over IPC but no longer consumed — dead extraction (already in the PR's Residual Findings). [maintainability + adversarial + correctness]
  • [P2/P3] Stale JSDoc (parse.ts @writes, parse-worker/parsing-processor "legacy DAG" framing); CrossFileOutput.filesReprocessed is now a constant 0; createResolverParityIt is a passthrough; addImportGraphEdge/deferredWorkerImports are documented-inert. [maintainability — mostly acceptable-as-noted]

Refuted (validation is a feature)

No 17th/unmigrated language; COBOL standalone still routed via cobolPhase, not the legacy import-edge path; preEmitInheritanceEdges dedup-seed removal is safe (it runs first, nothing emits inheritance before it); no dangling imports (tsc clean both packages).

Test gaps noted: no end-to-end edge-count invariant pinning the behavior-preservation claim; no test pinning exportedTypeMap as write-only; sequential-path inheritance parity untested.


Automated multi-tool digest (1 independent engine + 4 correlated Claude lanes). Verify before acting; findings are [code-read], not reproduced end-to-end.

…ces (abhigyanpatwari#942)

Tri-review P3 follow-ups (verified):
- TESTING.md: rewrite the "Scope-resolution parity" section — the legacy
  dual-leg (REGISTRY_PRIMARY_<LANG>=0/1) and `npm run test:parity` no longer
  exist; resolver tests run once on the sole scope-resolution path in the
  normal tests job.
- scripts/bench-scope-resolution.ts: drop the inert `REGISTRY_PRIMARY_PYTHON=1`
  env set + usage hint (the flag is gone).
- ruby/scope-resolver.ts, php/captures.ts: re-point doc-comments off the
  deleted heritage-map.ts / heritage-processor.ts to the current behavior.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes the legacy call-resolution DAG and heritage extraction path from the ingestion pipeline, consolidating all call + inheritance resolution onto the scope-resolution pipeline and deleting the associated parity/flag infrastructure.

Changes:

  • Deletes legacy call/heritage resolution code paths (and their tests) and removes the per-language REGISTRY_PRIMARY_<LANG> gating.
  • Updates scope-resolution pipeline and related docs/tests to reflect the single-path resolver model.
  • Bumps parse-cache schema and cleans up CI/workflows/scripts tied to the retired parity gate.

Reviewed changes

Copilot reviewed 135 out of 137 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
TESTING.md Updates testing docs to describe single-path scope-resolution tests.
gitnexus/test/unit/tree-sitter-queries.test.ts Removes legacy @heritage.* capture assertions.
gitnexus/test/unit/supertype-alternation.test.ts Deletes unit tests tied to removed heritage extractor utilities.
gitnexus/test/unit/sequential-language-availability.test.ts Removes legacy call/heritage availability tests; strengthens logger capture cleanup.
gitnexus/test/unit/scope-resolution/resolver-parity-expected-failures.test.ts Deletes tests for legacy parity expected-failure logic.
gitnexus/test/unit/ruby-self-call.test.ts Deletes unit tests for legacy Ruby implicit-receiver helper.
gitnexus/test/unit/parse-impl-fallback.test.ts Deletes tests tied to legacy parse/call fallback behavior.
gitnexus/test/unit/parse-impl-e1-emission-shape.test.ts Deletes source-shape pin test related to prior parse-impl logging structure.
gitnexus/test/unit/parse-impl-deferred-extraction.test.ts Deletes multi-chunk equivalence test referencing removed legacy processors.
gitnexus/test/unit/heritage-query-wiring.test.ts Deletes wiring-exhaustiveness tests for heritage descriptor/query interpolation.
gitnexus/test/unit/cross-file.test.ts Deletes cross-file propagation disposal tests after cross-file propagation removal.
gitnexus/test/unit/call-routing/ruby.test.ts Updates comments to reflect scope-resolution-owned mixin heritage.
gitnexus/test/integration/tree-sitter-languages.test.ts Removes integration checks for heritage.* captures.
gitnexus/test/integration/resolvers/vue-scope.test.ts Updates resolver test docstring to single-path behavior.
gitnexus/test/integration/resolvers/typescript.test.ts Removes legacy parity conditionals and updates commentary to single-path.
gitnexus/test/integration/resolvers/swift.test.ts Updates comments to remove legacy DAG references.
gitnexus/test/integration/resolvers/rust.test.ts Updates comments and removes legacy parity expectations.
gitnexus/test/integration/resolvers/rust-scope.test.ts Removes env var forcing; tests always run on scope-resolution path.
gitnexus/test/integration/resolvers/ruby.test.ts Updates commentary around Ruby module labeling and heritage ownership.
gitnexus/test/integration/resolvers/ruby-scope.test.ts Removes env var forcing; tests always run on scope-resolution path.
gitnexus/test/integration/resolvers/python.test.ts Removes legacy parity skip commentary; updates references to scope-resolution.
gitnexus/test/integration/resolvers/python-parsing-coverage.test.ts Switches assertions from @heritage.* to @reference.inherits semantics.
gitnexus/test/integration/resolvers/php.test.ts Removes legacy parity skip commentary.
gitnexus/test/integration/resolvers/kotlin.test.ts Updates fixture commentary to single-path scope-resolution.
gitnexus/test/integration/resolvers/javascript.test.ts Updates fixture commentary to single-path scope-resolution.
gitnexus/test/integration/resolvers/java.test.ts Updates fixture commentary; removes legacy mode rationale blocks.
gitnexus/test/integration/resolvers/go.test.ts Updates commentary around inheritance synth behavior under single path.
gitnexus/test/integration/resolvers/dart.test.ts Removes legacy parity framing; keeps language-tagged it wrapper.
gitnexus/test/integration/resolvers/cpp.test.ts Updates comment header naming (inherited method resolution).
gitnexus/test/integration/resolvers/cobol.test.ts Removes registry-primary gating and updates scope-resolution section expectations.
gitnexus/test/integration/resolvers/cobol-scope.test.ts Updates docstring to reflect integration coverage source.
gitnexus/test/integration/js-array-method-callback-attribution.test.ts Removes legacy-parity conditional skip; runs unconditionally.
gitnexus/test/integration/heritage-extractor-wiring.test.ts Deletes integration tests for removed heritage extractor wiring.
gitnexus/test/integration/cobol-pipeline-benchmark.test.ts Updates benchmark notes to remove registry-primary framing.
gitnexus/test/fixtures/lang-resolution/rust-child-extends-parent/src/child.rs Updates fixture comment to remove legacy resolver naming.
gitnexus/test/fixtures/lang-resolution/ruby-qualified-base/lib/derived.rb Updates fixture commentary to remove legacy symbols/@heritage references.
gitnexus/test/fixtures/lang-resolution/python-module-import/app.py Updates fixture comment to reference scope-resolution.
gitnexus/test/fixtures/lang-resolution/kotlin-qualified-base/src/F.kt Updates fixture comment to reflect scope-resolution inheritance handling.
gitnexus/test/fixtures/lang-resolution/javascript-qualified-base/src/Service.js Updates fixture comment to reflect scope-resolution reduction logic.
gitnexus/test/fixtures/lang-resolution/java-qualified-base/src/app/Plain.java Updates fixture comment wording (end-anchoring rationale).
gitnexus/test/fixtures/lang-resolution/java-iface-extends/src/app/IA.java Updates fixture comment to reflect single-path scope-resolution.
gitnexus/test/fixtures/lang-resolution/csharp-qualified-base/src/Shapes.cs Updates fixture comment to remove legacy parity language.
gitnexus/src/storage/parse-cache.ts Bumps parse-cache schema version due to ParseWorkerResult shape change.
gitnexus/src/core/ingestion/workers/parse-worker.ts Removes legacy heritage extraction outputs/pre-pass and heritage field.
gitnexus/src/core/ingestion/utils/ruby-self-call.ts Deletes legacy Ruby implicit-self helper implementation.
gitnexus/src/core/ingestion/utils/ast-helpers.ts Updates comments to remove buildHeritageMap reference.
gitnexus/src/core/ingestion/type-extractors/types.ts Updates docstring to remove resolveCallTarget reference.
gitnexus/src/core/ingestion/shadow-harness.ts Deletes legacy shadow-mode parity harness.
gitnexus/src/core/ingestion/scope-resolution/pipeline/run.ts Simplifies inheritance-edge dedup assumptions post-legacy-heritage removal.
gitnexus/src/core/ingestion/scope-resolution/pipeline/registry.ts Makes SCOPE_RESOLVERS the direct source of truth (no migrated set).
gitnexus/src/core/ingestion/scope-resolution/pipeline/phase.ts Removes registry-primary gating and runs all registered resolvers.
gitnexus/src/core/ingestion/scope-resolution/contract/scope-resolver.ts Updates “adding a language” contract to remove migrated/flag/parity steps.
gitnexus/src/core/ingestion/registry-primary-flag.ts Deletes per-language REGISTRY_PRIMARY_<LANG> flags + migrated set.
gitnexus/src/core/ingestion/pipeline-phases/cross-file.ts Converts cross-file phase into accumulator-disposal-only phase.
gitnexus/src/core/ingestion/parsing-processor.ts Removes heritage from worker extracted data aggregation.
gitnexus/src/core/ingestion/model/semantic-model.ts Updates docs to remove registry-primary/legacy split language.
gitnexus/src/core/ingestion/model/index.ts Removes re-exports tied to legacy HeritageMap/MRO resolver utilities.
gitnexus/src/core/ingestion/languages/vue.ts Removes heritage extractor wiring from Vue provider.
gitnexus/src/core/ingestion/languages/typescript/captures.ts Updates docs to reflect removal of legacy heritage leg.
gitnexus/src/core/ingestion/languages/typescript.ts Removes heritage extractor wiring from TS/JS providers.
gitnexus/src/core/ingestion/languages/swift/captures.ts Updates docs to reflect removal of legacy heritage leg.
gitnexus/src/core/ingestion/languages/swift.ts Removes legacy heritage extractor/default edge wiring from Swift provider.
gitnexus/src/core/ingestion/languages/rust/scope-resolver.ts Updates comment wording around legacy heritage naming.
gitnexus/src/core/ingestion/languages/rust/captures.ts Updates docs to reflect removal of legacy heritage leg.
gitnexus/src/core/ingestion/languages/rust.ts Removes heritage extractor wiring from Rust provider.
gitnexus/src/core/ingestion/languages/ruby/scope-resolver.ts Updates comments to remove legacy heritage-map references.
gitnexus/src/core/ingestion/languages/ruby/captures.ts Updates docs to reflect removal of legacy heritage leg.
gitnexus/src/core/ingestion/languages/ruby.ts Removes legacy DAG hooks + heritage extractor wiring; keeps scope-resolution hooks.
gitnexus/src/core/ingestion/languages/python/query.ts Removes legacy @heritage.* patterns from Python query file.
gitnexus/src/core/ingestion/languages/python/captures.ts Updates docs to reflect removal of legacy heritage leg.
gitnexus/src/core/ingestion/languages/python.ts Removes heritage extractor wiring from Python provider.
gitnexus/src/core/ingestion/languages/php/captures.ts Updates docs to reflect removal of legacy heritage leg.
gitnexus/src/core/ingestion/languages/php.ts Removes heritage extractor wiring from PHP provider.
gitnexus/src/core/ingestion/languages/kotlin/scope-resolver.ts Updates Kotlin resolver header to remove migrated/flag wording.
gitnexus/src/core/ingestion/languages/kotlin/captures.ts Updates docs to reflect removal of legacy heritage leg.
gitnexus/src/core/ingestion/languages/kotlin.ts Removes heritage extractor wiring from Kotlin provider.
gitnexus/src/core/ingestion/languages/javascript/captures.ts Updates docs to reflect removal of legacy heritage leg.
gitnexus/src/core/ingestion/languages/java/scope-resolver.ts Updates Java resolver header to remove parity/flag wording.
gitnexus/src/core/ingestion/languages/java/captures.ts Updates docs to reflect removal of legacy heritage leg.
gitnexus/src/core/ingestion/languages/java.ts Removes interfaceNamePattern + heritage extractor wiring from Java provider.
gitnexus/src/core/ingestion/languages/go/captures.ts Updates docs to reflect removal of legacy heritage leg.
gitnexus/src/core/ingestion/languages/go.ts Removes heritage extractor wiring from Go provider.
gitnexus/src/core/ingestion/languages/dart.ts Removes heritage extractor wiring from Dart provider.
gitnexus/src/core/ingestion/languages/csharp/captures.ts Updates docs to reflect removal of legacy heritage leg.
gitnexus/src/core/ingestion/languages/csharp.ts Removes interfaceNamePattern + heritage extractor wiring from C# provider.
gitnexus/src/core/ingestion/languages/c-cpp.ts Removes heritage extractor wiring from C/C++ providers.
gitnexus/src/core/ingestion/language-provider.ts Removes legacy DAG + heritage extractor configuration surface from LanguageProvider.
gitnexus/src/core/ingestion/import-processor.ts Makes legacy IMPORTS-edge emission inert for supported languages.
gitnexus/src/core/ingestion/heritage-types.ts Deletes legacy heritage extractor type surface.
gitnexus/src/core/ingestion/heritage-extractors/generic.ts Deletes legacy generic heritage extractor factory.
gitnexus/src/core/ingestion/heritage-extractors/configs/typescript.ts Deletes legacy heritage extractor config (TypeScript).
gitnexus/src/core/ingestion/heritage-extractors/configs/rust.ts Deletes legacy heritage extractor config (Rust).
gitnexus/src/core/ingestion/heritage-extractors/configs/ruby.ts Deletes legacy heritage extractor config (Ruby).
gitnexus/src/core/ingestion/heritage-extractors/configs/python.ts Deletes legacy heritage extractor config (Python).
gitnexus/src/core/ingestion/heritage-extractors/configs/kotlin.ts Deletes legacy heritage extractor config (Kotlin).
gitnexus/src/core/ingestion/heritage-extractors/configs/javascript.ts Deletes legacy heritage extractor config (JavaScript).
gitnexus/src/core/ingestion/heritage-extractors/configs/java.ts Deletes legacy heritage extractor config (Java).
gitnexus/src/core/ingestion/heritage-extractors/configs/go.ts Deletes legacy heritage extractor config (Go).
gitnexus/src/core/ingestion/heritage-extractors/configs/csharp.ts Deletes legacy heritage extractor config (C#).
gitnexus/src/core/ingestion/heritage-extractors/configs/cpp.ts Deletes legacy heritage extractor config (C++).
gitnexus/src/core/ingestion/finalize-orchestrator.ts Updates comment wording (legacy HeritageMap bridge terminology).
gitnexus/src/core/ingestion/call-types.ts Removes legacy call-resolution DAG types.
gitnexus/src/core/ingestion/call-routing.ts Updates Ruby mixin routing comment to match scope-resolution ownership.
gitnexus/scripts/run-parity.ts Deletes parity runner script.
gitnexus/scripts/ci-list-migrated-languages.ts Deletes CI parity matrix discovery helper.
gitnexus/scripts/bench-scope-resolution.ts Removes registry-primary env forcing from bench script.
gitnexus/package.json Removes test:parity script.
gitnexus/bench/scope-capture/baselines.json Re-baselines fingerprints due to comment/text shifts (not capture logic).
gitnexus/bench/python-scope/baseline-fingerprint.txt Updates python-scope baseline fingerprint.
CLAUDE.md Updates documentation pointers away from deleted Call-Resolution DAG section.
AGENTS.md Updates ingestion documentation to scope-resolution-only model.
.github/workflows/publish.yml Removes mention of deleted scope-parity workflow from comments.
.github/workflows/ci.yml Removes scope-parity job; clarifies resolver tests run in standard tests workflow.
.github/workflows/ci-scope-parity.yml Deletes the scope-resolution parity reusable workflow.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@@ -3,23 +3,20 @@
*
* Generic registry-primary resolution phase (RFC #909 Ring 3).
magyargergo and others added 4 commits June 4, 2026 08:12
…patwari#942)

Two more CI failures, same root cause as the bench re-baseline (the
test-cleanup reworded comments in lang-resolution bench/golden-corpus fixtures):

- quality/format: prettier on tree-sitter-languages.test.ts (blank line left by
  the deleted heritage-capture tests) + TESTING.md (the rewritten section).
- tests/ubuntu/coverage: `csharp-captures-golden` (and python/ruby/rust) drifted
  because the edited fixtures feed the per-language capture-golden snapshots too
  (not just the bench). Regenerated via UPDATE_GOLDEN=1. Verified safe: only the
  edited-fixture entries changed; csharp `captureGroups` unchanged (38) — digest
  shifted from comment-position only; capture LOGIC untouched. 1168 scope-
  resolution tests pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve bench/scope-capture/baselines.json conflict: take main's entry
set (incl. abhigyanpatwari#1992 rust re-baseline + history notes) and re-measure the
merged tree, updating the 6 fingerprints the abhigyanpatwari#942 fixture-comment scrub
shifts (csharp, rust, ruby, java, javascript, kotlin). Capture LOGIC is
unchanged — only byte-positions move, so the digest gate re-baselines.

rust folds both sides: main's abhigyanpatwari#1992 inherent-impl ownership + the abhigyanpatwari#942
comment scrub (b00aea0f -> ac610bbe). Bench --check PASS (14 langs),
python-scope PASS, goldens PASS (64 files/1168 tests), tsc clean,
acceptance grep zero.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…o refactor/942-delete-legacy-resolution

Same baselines.json resolution as the prior merge: take main's entry set
(now incl. abhigyanpatwari#2004 cpp re-baseline) and re-measure the merged tree, re-applying
the 6 abhigyanpatwari#942 fixture-comment-scrub fingerprints (csharp/rust/ruby/java/js/kotlin).
cpp folds in from main automatically (no abhigyanpatwari#942 cpp fixture change). Bench
--check PASS (14 langs).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…irectly

The parity-aware `it` wrapper became a no-op when abhigyanpatwari#942 removed the legacy
call-resolution DAG (it just returned vitest's `it`). Remove it entirely so
the resolver tests call vitest's `it` directly instead of shadowing it with a
local `const it` (or `pit`/`rustParityIt`):

- helpers.ts: delete createResolverParityIt + its now-unused vitestIt import
  and VitestIt type.
- 16 files: drop `const it = createResolverParityIt('x')` and import `it`
  from vitest instead.
- ruby.test.ts (pit) + rust.test.ts (rustParityIt): rename calls to `it`.
- Scrub every comment that described the removed wrapper / dual-mode parity
  skip / legacy_skip gate (vue-scope, js/ts/dart/php/python headers, rust x2,
  cpp, swift x4, rust-coverage). Genuine test rationale is kept; only the
  vestigial two-leg framing is dropped. Accurate "legacy DAG (removed in
  abhigyanpatwari#942)" historical notes are retained.

No fixtures touched (no bench/golden re-baseline). tsc clean; rust+ruby
resolver suites green (323 tests, incl. abhigyanpatwari#1992 worker-path parity after a
local dist build).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@magyargergo magyargergo force-pushed the refactor/942-delete-legacy-resolution branch from 8b215d5 to 35b3cd3 Compare June 4, 2026 09:43
…o refactor/942-delete-legacy-resolution

Two conflicts resolved:
- bench/scope-capture/baselines.json: same regenerate recipe (take main's
  entry set, re-measure merged tree, re-apply the 6 abhigyanpatwari#942 fixture-scrub
  fingerprints). Bench --check PASS (14 langs).
- test/integration/resolvers/helpers.ts: abhigyanpatwari#2005 added cpp entries to
  LEGACY_RESOLVER_PARITY_EXPECTED_FAILURES, a ~665-line legacy-parity map
  that abhigyanpatwari#942 deletes wholesale. Keep abhigyanpatwari#942's deletion (the map is dead once the
  legacy leg is gone); discard abhigyanpatwari#2005's additions to it. No resolver test
  references the map (tsc clean). abhigyanpatwari#2005's 67 new cpp.test.ts cases auto-merge
  and run as plain scope-resolution tests: cpp.test.ts 297 pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@magyargergo magyargergo merged commit 083aedb into abhigyanpatwari:main Jun 4, 2026
30 of 31 checks passed
@magyargergo magyargergo deleted the refactor/942-delete-legacy-resolution branch June 4, 2026 10:07
magyargergo added a commit that referenced this pull request Jun 4, 2026
… legacy-DAG removal)

Resolved conflicts from #2023 (delete legacy call-resolution DAG + heritage
processor, #942):

- test/integration/resolvers/helpers.ts: took #942's removal of
  LEGACY_RESOLVER_PARITY_EXPECTED_FAILURES + the createResolverParityIt /
  isLegacyResolverParity* helpers (no legacy leg remains; only a kotlin doc
  comment referenced the list).
- test/integration/resolvers/ruby.test.ts: converted the three #1991 `pit(...)`
  (parity-gated `it`) calls to plain `it(...)`, matching #942's single-leg harness.
- bench/scope-capture/baselines.json (ruby): both sides changed it — #942 reworded
  fixture comments (shifting capture byte-positions; capture LOGIC unchanged) and
  #1991 added the ruby-nested-mixin-tail-collision fixture. Recomputed the ruby
  fingerprint on the merged tree: bf6b13a -> b5ea93bb (86 fixtures).

Verified on the merged tree: bench --check PASS (14 languages), tsc 0 errors,
ruby resolver + ruby-captures-golden 159/159, prettier clean. F5 predicate +
swaps intact through the auto-merge.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@navidemad navidemad mentioned this pull request Jun 12, 2026
6 tasks
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.

RING4-1: Delete legacy call-resolution DAG + heritage processor

2 participants