You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Breaking change: Id is encoded into BinaryId via new native algorithm (uses platform Base64 with polyfill). Removed custom Base64Url256 micro-optimization; table & column names now plain strings. Simpler, smaller, more standard code.
- Enable relay broadcasting for all messages, not just non-sync messages. The previous logic was only working due to a bug and we've normalized this behavior.
11
+
- Remove TimestampDuplicateNodeError and related NodeId collision checks from receiveTimestamp function.
12
+
- Add comprehensive documentation explaining relay broadcasting behavior during migration scenarios and why duplicate messages are safe due to applyMessages idempotency.
OwnerSecret is the fundamental cryptographic primitive from which all owner keys are derived via SLIP-21. Mnemonic is just a representation of this underlying entropy. This change makes the type system more accurate and the cryptographic relationships clearer.
**BREAKING CHANGE**: Replaced `syncUrl` with flexible `transport` property supporting single transport or array of transports for multiple sync endpoints.
12
+
13
+
## What Changed
14
+
15
+
-**Removed**`syncUrl` property from Evolu config
16
+
-**Added**`transport` property accepting a single `Transport` object or array of `Transport` objects
17
+
-**Added**`Transport` type union with initial WebSocket support
18
+
-**Updated** sync system to support Nostr-style relay pools with simultaneous connections
19
+
-**Updated** all examples and documentation to use new transport configuration
- Backwards compatibility removed (preview version breaking change)
73
+
74
+
This change provides an intuitive API that scales from simple single-transport setups to complex multi-transport configurations, positioning Evolu for a more resilient, multi-transport future.
-**Run tests using pnpm** - use `pnpm test` from the project root to run all tests
216
251
-**Run specific test files** - use `pnpm test --filter @evolu/package-name -- test-file-pattern` from project root (e.g., `pnpm test --filter @evolu/common -- Protocol`)
252
+
-**Check compilation** - use `pnpm build` to check TypeScript compilation across all packages
253
+
-**Run linting** - use `pnpm lint` to check code style and linting rules
254
+
-**Leverage `_deps.ts`** - use existing test utilities and mocks from `packages/common/test/_deps.ts` (e.g., `testCreateId`, `testTime`, `testOwner`)
217
255
- Mock dependencies using the same interfaces
218
256
- Create test factories (e.g., `createTestTime`)
219
257
- Never rely on global state
220
258
- Use assertions in tests for conditions that should never fail
0 commit comments