Skip to content

feat(languages): add Swift, Dart, Scala, and Groovy universal evidence - #277

Merged
forhappy merged 5 commits into
mainfrom
codex/020-universal-language-wave
Aug 22, 2026
Merged

feat(languages): add Swift, Dart, Scala, and Groovy universal evidence#277
forhappy merged 5 commits into
mainfrom
codex/020-universal-language-wave

Conversation

@forhappy

Copy link
Copy Markdown
Contributor

Summary

  • Hard-cut Swift, Dart, Scala, and Groovy onto one AST-first universal-evidence production route each.
  • Register compass.swift, compass.dart, compass.scala, and compass.groovy as version 1 Qualifying pipelines.
  • Remove the replaced Swift/Dart/Groovy direct publishers, Scala-only generic branches, RawCall paths, Swift member-table compatibility, and broad JVM/native terminal-name fallbacks.
  • Add bounded Package.swift, pubspec.yaml, build.sbt, and Gradle/Groovy project evidence.
  • Migrate framework boundaries for Vapor, Flutter navigation, BLoC, Riverpod, Play, Gradle, and Spock; Dart contextual conventions now require positive source/manifest activation.
  • Add deterministic lifecycle qualification, independent source-oracle providers, pinned manifests, baselines, quality-audit tooling, fixtures, compatibility notes, changelog entries, and current support documentation.

Independent qualification

All three-corpus audits passed the record-count, corpus-diversity, per-relation/capability, precision, Wilson, recall, and zero-critical-violation gates:

Language Accepted records Precision Recall Critical violations
Swift 61,321 1.000 0.99498 0
Dart 8,457 1.000 0.97044 0
Scala 50,529 1.000 0.97713 0
Groovy 12,311 1.000 1.00000 0

Providers are pinned outside the checkout: SwiftSyntax 603.0.0, Dart Analyzer 8.4.0, scala.meta 4.13.10, and Groovy 4.0.27. Corpus checkouts are immutable, clean, and SHA-pinned by the manifests under tests/qualification/.

Cold, warm, fact-neutral, forced, alternate-checkout, delete, rename, and restore runs were byte-deterministic and within the established performance/RSS gates. Qualification artifacts and provider binaries remain on the mounted target volume and are not committed.

Verification

  • CARGO_TARGET_DIR=/Volumes/Workspace/crabbuild-target/compass-main cargo test -p compass-languages --tests --locked
  • CARGO_TARGET_DIR=/Volumes/Workspace/crabbuild-target/compass-main cargo test -p compass-resolve --tests --locked
  • CARGO_TARGET_DIR=/Volumes/Workspace/crabbuild-target/compass-main cargo test -p compass-core --test code_graph_v1_determinism --locked
  • CARGO_TARGET_DIR=/Volumes/Workspace/crabbuild-target/compass-main cargo test -p compass-cli --test compass_product --locked
  • CARGO_TARGET_DIR=/Volumes/Workspace/crabbuild-target/compass-main cargo clippy --workspace --lib --bins --locked -- -D warnings
  • CARGO_TARGET_DIR=/Volumes/Workspace/crabbuild-target/compass-main cargo test --workspace --lib --bins --locked
  • CARGO_TARGET_DIR=/Volumes/Workspace/crabbuild-target/compass-main ./scripts/qualify_code_graph_v1.sh --fixtures-only
  • sh scripts/check_product_boundary.sh
  • python3 -m unittest discover scripts/tests -v (27 passed)
  • cargo fmt --all -- --check
  • git diff --check

Compatibility

This changes the producer route for the four languages while preserving the versioned graph/evidence contracts. Cache fingerprints and evidence validation require current universal evidence; normal invalidation handles rebuilds. No manual migration is required. Registry state intentionally remains Qualifying; promotion to Qualified is a separate product decision.

@forhappy

Copy link
Copy Markdown
Contributor Author

Follow-up commit ccdecee9 addresses modularity: the former mixed producer is now evidence/extended/common.rs (generic bounded traversal/validation) with dedicated evidence/extended/{swift,dart,scala,groovy}.rs language profiles and a small dispatch module. The production output and all qualification digests remain unchanged.

Refactor verification: full compass-languages --tests, full compass-resolve --tests, core determinism (13/13), fixture qualification (all byte comparisons true), workspace lib/bin Clippy, product boundary, formatting/diff checks, CLI product tests (8/8), and 27 script tests.

@forhappy
forhappy merged commit aa25dec into main Aug 22, 2026
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