memmesh-test-integration
Prove the integration actually works — not just that it typechecks.
Preconditions
- A
.memmesh-integration/directory exists (else tell the user to runmemmesh-integratefirst). - Credentials: Hosted ⇒
MEMMESH_API_KEYset; Local ⇒memmesh doctorpasses.
Steps
Static gate. Typecheck / lint / build. Any failure ⇒ stop, report.
Native suite. Run the repo's own tests twice — once with
MEMMESH_ENABLEDunset (must be byte-for-byte the original behavior) and once set. Both must pass.Real E2E smoke against the live engine (not a mock):
observea known fact for a throwawayuserId(e.g.smoke-<runid>).searchfor it; assert the fact comes back.buildContextfor the subject; assert the fact appears in the bundle.- If prediction was wired: call
predict/predictTargetand assert you get either a calibrated probability or an honest abstention — both are a pass; a crash or an uncalibrated 1.0/0.0 with no evidence is a fail. - Clean up:
memory_delete(orcompliance.hardDeleteSubject) the throwaway subject so the smoke run leaves no residue.
Scorecard. Write
.memmesh-integration/scorecard.md:Check Result Typecheck / build ✅ / ❌ Native tests (flag off) ✅ / ❌ Native tests (flag on) ✅ / ❌ E2E observe→search ✅ / ❌ E2E buildContext ✅ / ❌ E2E predict (calibrated OR abstained) ✅ / ❌ / n/a Smoke cleanup ✅ / ❌
Definition of done
Every applicable row green, throwaway data removed, and a one-paragraph verdict: ship / needs-work, with the failing checks called out.