Skip to content

Add cross-language readiness checks and offline fixture probes - #1

Open
haddanki-personal wants to merge 1 commit into
issacnitin:mainfrom
haddanki-personal:feat/readiness-checks
Open

haddanki-personal wants to merge 1 commit into
issacnitin:mainfrom
haddanki-personal:feat/readiness-checks

Conversation

@haddanki-personal

Copy link
Copy Markdown

Summary

Adds a shared readiness stage before expensive instrumentation and analysis, covering .NET, Java, Node/TypeScript, Go, Rust, and Python.

  • Add realdiff doctor <repo> [--json] [--out <file>] [--probe] through the native and managed entry points.
  • Check actual base and PR revisions independently before builds or baseline-cache reuse; support --readiness-probe for analysis and warm.
  • Inspect installed toolchain selection and tracer assets without building project code or provisioning toolchains.
  • Ship opt-in offline fixtures using the production instrumenters. Require nonempty trace/manifest pairs, expected argument/return evidence, source attribution, per-process root correlation, and reconciled counters.
  • Include verified compiler/runtime/runner context in versioned baseline-cache keys.
  • Preserve readiness.json through CLI failures, MCP, and CI/action integrations.
Repository -> installed tools + assets + compatibility evidence
                               |
                   optional bundled fixture
                               |
                    ready / blocked + reason
                               |
                     existing analysis pipeline

Intentional behavior changes and limits

  • Required failed or unknown checks block analysis. Opaque custom build/test commands and unresolved Java wrappers remain blocked.
  • Old baseline-cache entries become misses.
  • Probes are explicitly authorized, use local dependency caches, and do not silently download missing prerequisites. Temporary directories are not a security sandbox.
  • Passing readiness is not a clean-PR verdict or proof of compatibility with every source shape. This exposes compiler compatibility; it does not remove every compiler dependency.

Validation

  • Readiness proof: 113 assertions, including negative trace cases and Windows script quoting.
  • Native launcher: 18 unit tests; native doctor exercised for all six languages.
  • Installed package: all six readiness probes passed; Java, Node, Go, Rust, and Python reference analyses completed successfully.
  • Self-contained .NET fixture probe passed.
  • Same Go rewriter exercised with Go 1.27.1 and 1.27.0; Rust rewriter exercised with Rust 1.98.1 and 1.97.0.
  • Rust cold/warm/cache-hit behavior and toolchain-change invalidation exercised.
  • Managed detection, configured-command refusal, CLI/MCP builds, and diff hygiene checked.

Local execution was on Windows using SDK 10.0.401 because the repository-pinned SDK 8.0.424 was not installed. Windows/Linux CI coverage is configured; Linux was not executed locally. The existing native detect Gradle-marker gap remains outside this change; managed detection and doctor routing are separate from that limitation.

Add doctor, revision-specific analysis preflight, strict compatibility checks, offline production-instrumentation probes, and toolchain-aware baseline cache identities. Preserve readiness diagnostics through MCP and CI and package deterministic fixtures.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 4d14fc06-a348-44f0-a68c-55174c5cad3c
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