Background
SQLiteStorage(path: ":memory:") is currently tested in SQLiteStorageConformanceTests.inMemoryConformance(). With the writer+reader connection split introduced in issue #82, in-memory paths use a single-actor fallback (WAL concurrency doesn't apply to :memory: databases). The in-memory conformance test still passes but is exercising a code path that will never benefit from the split.
InMemoryStorage already exists at Sources/SwitchcraftCore/Storage/InMemoryStorage.swift and covers the same contract conformance. It is the canonical ephemeral backend.
What to do
- Remove the
inMemoryConformance() test from SQLiteStorageConformanceTests (or repoint it to InMemoryStorage).
- Treat file-backed paths as the only supported mode for
SQLiteStorage.
- Document (or enforce via assertion) that
SQLiteStorage(path: ":memory:") is unsupported / deprecated.
Why this is deferred from issue #82
This is a test-cleanup change that can land independently. Mixing it into the structural concurrency fix in #82 inflates the blast radius of that PR unnecessarily.
Priority
Low. Not blocking any other work.
Background
SQLiteStorage(path: ":memory:")is currently tested inSQLiteStorageConformanceTests.inMemoryConformance(). With the writer+reader connection split introduced in issue #82, in-memory paths use a single-actor fallback (WAL concurrency doesn't apply to:memory:databases). The in-memory conformance test still passes but is exercising a code path that will never benefit from the split.InMemoryStoragealready exists atSources/SwitchcraftCore/Storage/InMemoryStorage.swiftand covers the same contract conformance. It is the canonical ephemeral backend.What to do
inMemoryConformance()test fromSQLiteStorageConformanceTests(or repoint it toInMemoryStorage).SQLiteStorage.SQLiteStorage(path: ":memory:")is unsupported / deprecated.Why this is deferred from issue #82
This is a test-cleanup change that can land independently. Mixing it into the structural concurrency fix in #82 inflates the blast radius of that PR unnecessarily.
Priority
Low. Not blocking any other work.