Cross-implementation conformance suite for the mneme Protocol.
An implementation is v0.1-conforming if and only if every test in this package passes against its MnemeStore interface, with no skips.
bun test tests/conformanceThis runs the suite against @mnemehq/sdk's SqliteStore via src/sqlite-store.test.ts.
import { runV01ConformanceSuite } from '@mnemehq/conformance'
import { MyStore } from './my-store'
runV01ConformanceSuite('MyStore', async () => {
const store = new MyStore({ /* … */ })
return {
store,
dispose: () => store.close(),
}
})Save the file as *.test.ts anywhere in your repo and run bun test. The suite calls your factory before every test and dispose() after, so each test gets a fresh store with no cross-test leakage.
- WRITE → READ round-trip
- Owner isolation (cross-owner READ returns
null) - SEARCH ranks matches and excludes non-matches
- FORGET hides records from SEARCH
- SUPERSEDE chains records via
lifecycle.supersededBy - EXPORT streams every record for an owner
- FORGET on unknown IDs raises
record_not_found
Extensions for v0.2 (sync, OBSERVE, encrypted payload mode, MCP mapping) will be added under tests/conformance/v0.2/ when those protocol sections land. Suites are additive — v0.1 conformance MUST keep passing across all protocol versions until v1.0.
Apache-2.0.