The problem
The e2e suite already covers the real embedding path with txtar scripts (cmd/semantic/testdata/search-quality.txtar, gated on a [embed] condition), but by design CI never runs them — TestE2E's own comment says so, to keep CI offline and avoid a ~127 MB download on every run. That means a break in the onnxruntime_go/OrtVersion coupling — exactly what #11 fixed — has nothing to catch it before a release ships. It only surfaced because someone happened to run semantic search for real after tagging v0.2.0.
What you propose
A CI job that isn't part of the normal per-PR run — scheduled, or gated to release prep — that runs semantic init to fetch the real model + ONNX Runtime, then go test ./cmd/semantic/... -run TestE2E so the existing [embed] txtar scripts actually execute. No new test mechanism needed, just somewhere for the one that exists to run against a real model before a tag goes out.
What else you considered
A cheaper smoke check that only loads the ONNX Runtime shared library (skips the 127 MB model download) would catch an API-version mismatch specifically, but not the coupling breaks the txtar scripts are built to catch generally.
The problem
The e2e suite already covers the real embedding path with txtar scripts (
cmd/semantic/testdata/search-quality.txtar, gated on a[embed]condition), but by design CI never runs them —TestE2E's own comment says so, to keep CI offline and avoid a ~127 MB download on every run. That means a break in the onnxruntime_go/OrtVersioncoupling — exactly what #11 fixed — has nothing to catch it before a release ships. It only surfaced because someone happened to runsemantic searchfor real after tagging v0.2.0.What you propose
A CI job that isn't part of the normal per-PR run — scheduled, or gated to release prep — that runs
semantic initto fetch the real model + ONNX Runtime, thengo test ./cmd/semantic/... -run TestE2Eso the existing[embed]txtar scripts actually execute. No new test mechanism needed, just somewhere for the one that exists to run against a real model before a tag goes out.What else you considered
A cheaper smoke check that only loads the ONNX Runtime shared library (skips the 127 MB model download) would catch an API-version mismatch specifically, but not the coupling breaks the txtar scripts are built to catch generally.