Skip to content

feat(harness/shadow): scaffold differential-testing harness (RC3 R3.9)#136

Merged
tsouza merged 3 commits into
mainfrom
feat/rc3-r3.9-shadow-mode-harness
May 13, 2026
Merged

feat(harness/shadow): scaffold differential-testing harness (RC3 R3.9)#136
tsouza merged 3 commits into
mainfrom
feat/rc3-r3.9-shadow-mode-harness

Conversation

@tsouza
Copy link
Copy Markdown
Owner

@tsouza tsouza commented May 13, 2026

Summary

  • New harness/compatibility/shadow/ subtree: differ + corpus loader + CLI scaffold.
  • .github/workflows/shadow-mode.yml (manual dispatch only — full activation gated on R3.10 oracle landing).
  • Justfile: shadow-mode recipe.
  • Scope: scaffold + smoke corpus. Oracle wiring stubbed; R3.10 fills it.

Test plan

  • go test ./harness/compatibility/shadow/... passes.
  • just shadow-mode CORPUS=harness/compatibility/shadow/corpus/smoke.txt builds and runs against a running cerberus (or fails gracefully if CERBERUS_URL unset).

Roadmap: docs/roadmap.md § RC3 R3.9. Oracle: R3.10.

@tsouza tsouza enabled auto-merge (squash) May 13, 2026 07:56
tsouza and others added 3 commits May 13, 2026 07:59
Scaffold the RC3 R3.9 shadow-mode harness: corpus loader (TXTAR), pure
Compare(a, b) diff with epsilon tolerances, CLI binary that hits cerberus
over HTTP for the native side and calls an OracleProvider interface for
the reference side. Oracle is stubbed (noopOracle returning ErrOracleSkipped)
until R3.10 lands internal/promshim/local/.

Adds a 7-query smoke corpus, a `just shadow-mode` recipe, and a
workflow_dispatch-only GitHub workflow. The harness exits cleanly when
CERBERUS_URL is unset under prefer-native (records native errors per query)
and exits 3 when an oracle is required but missing.

Touches nothing under internal/. No raw SQL strings — the harness consumes
cerberus's HTTP API.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- gofumpt: collapse aligned struct field column widths in main.go
- gosec G304: nolint with reason for os.Open/os.Create on CLI-arg paths
- gosec G704: nolint with reason for http.NewRequest/Do on CLI-arg URL
- errcheck: wrap Close() in deferred funcs to satisfy errcheck

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Align table pipes and add code-fence languages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@tsouza tsouza force-pushed the feat/rc3-r3.9-shadow-mode-harness branch from 369e449 to a7c93c5 Compare May 13, 2026 07:59
@tsouza tsouza merged commit 37c9dd2 into main May 13, 2026
7 checks passed
@tsouza tsouza deleted the feat/rc3-r3.9-shadow-mode-harness branch May 13, 2026 08:03
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