GitNexus/.github/workflows
Gergo Magyar 6a1b4227eb ci(scope-resolution): automatic parity gate driven by MIGRATED_LANGUAGES
Adds the Ring 3 parity gate the RFC §6.4 requires: when a language's
scope-resolution migration is marked complete, CI runs its resolver
integration test twice on every PR (once with the legacy DAG, once with
the registry-primary path) and both must pass.

The "is this language migrated" signal is a single TypeScript constant:

  // gitnexus/src/core/ingestion/registry-primary-flag.ts
  export const MIGRATED_LANGUAGES: ReadonlySet<SupportedLanguages> =
    new Set([ /* SupportedLanguages.Python when ready */ ]);

Adding a language here has three simultaneous effects:

  1. `isRegistryPrimary(lang)` defaults to true for that language in
     production (env-var override still wins if set explicitly).
  2. `.github/workflows/ci-scope-parity.yml` auto-discovers the set via
     `npx tsx scripts/ci-list-migrated-languages.ts`, builds a parity
     matrix, and runs:
       - `REGISTRY_PRIMARY_<LANG>=0 npx vitest run resolvers/<slug>.test.ts`
       - `REGISTRY_PRIMARY_<LANG>=1 npx vitest run resolvers/<slug>.test.ts`
     Both legs must pass for the job to succeed.
  3. Legacy-path gating in call-processor.ts / import-processor.ts kicks
     in automatically through the same `isRegistryPrimary` lookup.

No JSON registry, no manual workflow edit, no second source of truth —
contributors update the Set and CI picks it up. Empty Set = parity job
is a skipped matrix (workflow still reports success).

The new `scope-parity` reusable workflow is added to ci.yml's `needs`
graph and ci-status gate. Its result must be `success` (skipped would
mean upstream discover job failed and should block).

Validation (with empty MIGRATED_LANGUAGES set):
- flag OFF: 191/191 pass (no behavior change)
- flag ON (manual REGISTRY_PRIMARY_PYTHON=1): 82 fails = baseline exact match
- `npx tsc --noEmit`: clean
- concurrency-convention script: pass
- tsx discovery script: emits `[]` correctly
2026-04-19 12:06:45 +01:00
..
ci-e2e.yml chore(deps): bump actions/checkout from 4.3.1 to 6.0.2 (#842) 2026-04-15 13:52:01 +01:00
ci-quality.yml chore(deps): bump actions/checkout from 4.3.1 to 6.0.2 (#842) 2026-04-15 13:52:01 +01:00
ci-report.yml Merge pull request #851 from abhigyanpatwari/dependabot/github_actions/marocchino/sticky-pull-request-comment-3.0.4 2026-04-16 06:48:07 +01:00
ci-scope-parity.yml ci(scope-resolution): automatic parity gate driven by MIGRATED_LANGUAGES 2026-04-19 12:06:45 +01:00
ci-tests.yml feat: add docker support (#848) 2026-04-18 08:39:18 +01:00
ci.yml ci(scope-resolution): automatic parity gate driven by MIGRATED_LANGUAGES 2026-04-19 12:06:45 +01:00
claude-code-review.yml chore(deps): bump actions/github-script from 7.0.1 to 9.0.0 2026-04-15 20:17:08 +00:00
claude.yml chore(deps): bump actions/github-script from 7.0.1 to 9.0.0 2026-04-15 20:17:08 +00:00
docker.yml feat(docker): ship signed UI + CLI/server images via docker-compose (#967) 2026-04-18 20:55:19 +01:00
pr-description-check.yml chore(deps): bump actions/github-script from 7.0.1 to 9.0.0 2026-04-15 20:17:08 +00:00
pr-labeler.yml fix(ci): replace removed disable-releaser with dry-run for release-drafter v7 2026-04-16 07:48:21 +01:00
publish.yml chore(deps): bump softprops/action-gh-release from 2.5.0 to 3.0.0 2026-04-15 20:17:03 +00:00
release-candidate.yml chore(deps): bump softprops/action-gh-release from 2.5.0 to 3.0.0 2026-04-15 20:17:03 +00:00
tree-sitter-upgrade-readiness.yml chore(deps): tree-sitter 0.25 upgrade readiness monitor with daily Dependabot (#847) 2026-04-16 09:17:21 +01:00
triage-sweep.yml chore(deps): bump actions/cache from 5.0.4 to 5.0.5 (#840) 2026-04-15 13:36:38 +01:00