@crvouga/mockingbird-service-postgres 3.4.0 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/COMPATIBILITY.md +13 -1
- package/dist/admin.js +1 -1
- package/dist/admin.js.map +2 -2
- package/dist/index.js +7 -5
- package/dist/index.js.map +2 -2
- package/dist/server.js +479 -28
- package/dist/server.js.map +4 -4
- package/dist/storage/columnar-slab.d.ts +2 -0
- package/dist/wire/cli.js +4274 -236
- package/dist/wire/cli.js.map +4 -4
- package/dist/wire/fleet.d.ts +38 -2
- package/dist/wire/index.js +7 -5
- package/dist/wire/index.js.map +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# Changelog — @crvouga/mockingbird-service-postgres
|
|
2
2
|
|
|
3
|
+
## 3.5.0 (2026-10-15)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- finish durable run lifecycle ([725ea1a](https://github.com/crvouga/mockingbird/commit/725ea1a966dac65434e98f06a9c33aca0d6f32d7))
|
|
8
|
+
- add management and portable archives ([0d2a6dd](https://github.com/crvouga/mockingbird/commit/0d2a6dd0f9fecb3a1ea7c1638f6639787395c2f4))
|
|
9
|
+
|
|
10
|
+
### Fixes and improvements
|
|
11
|
+
|
|
12
|
+
- correlate cross-namespace operations ([3457a4b](https://github.com/crvouga/mockingbird/commit/3457a4b7dbfd9ad9c8a10671a5744b7c8425d000))
|
|
13
|
+
- harden HTTP stream handling ([674307a](https://github.com/crvouga/mockingbird/commit/674307a869f57907567d462c4f506c3b0a237e13))
|
|
14
|
+
|
|
15
|
+
## 3.4.1 (2026-10-15)
|
|
16
|
+
|
|
17
|
+
### Fixes and improvements
|
|
18
|
+
|
|
19
|
+
- resolve snapshot, promotion and webhook issues ([75fb79f](https://github.com/crvouga/mockingbird/commit/75fb79f9a999bf0af29c4ec07fde4f1d7a1f0c22))
|
|
20
|
+
|
|
3
21
|
## 3.4.0 (2026-10-12)
|
|
4
22
|
|
|
5
23
|
### Features
|
package/COMPATIBILITY.md
CHANGED
|
@@ -58,7 +58,7 @@ for the guarantees and their limits (`tests/wire/durable*.test.ts`, `tests/wire/
|
|
|
58
58
|
|
|
59
59
|
Anything a PostgreSQL application can invoke through SQL against the PGlite **18.3** oracle must match observable behavior, except:
|
|
60
60
|
|
|
61
|
-
1. **Snapshot format** — custom binary codec (`PGMM`), not `pg_dump` / on-disk clusters (logical state still round-trips).
|
|
61
|
+
1. **Snapshot format** — custom binary codec (`PGMM`), not `pg_dump` / on-disk clusters (logical state still round-trips). Decoding PGMM v3 preserves bigint-backed SQL datums (including small `bigint`, `money`, `time`, `timestamp`, and `timestamptz` values) using their catalog types, so arithmetic remains valid after repeated restores, including materialized views (`tests/contract/snapshots/basic.test.ts`).
|
|
62
62
|
2. **Deterministic `random()` / `now()`** — seeded PRNG and fixed clock by default (injectable).
|
|
63
63
|
3. **Single-session sync API** — no concurrent sessions or `25P02` aborted-transaction state. The optional wire server separately provides per-session `READ COMMITTED` workspaces and row locks.
|
|
64
64
|
4. **NOT APPLICABLE** rows in `compat/coverage.json` (roles, replication, VACUUM internals, LISTEN/NOTIFY, cursors, full PL/pgSQL, extensions other than `pgcrypto`'s `digest()` and `pg_trgm`'s `similarity` / `<%` / `gin_trgm_ops`).
|
|
@@ -126,3 +126,15 @@ bun run build # ESM browser build
|
|
|
126
126
|
Do not treat isolated unit tests of internal modules as proof of PostgreSQL compatibility. The differential suite is authoritative for SQL behavior; `test:postgres-compat` is the release gate.
|
|
127
127
|
|
|
128
128
|
**Parity claim:** Verified against **PostgreSQL 18.3** (PGlite). Features marked **VERIFIED** are oracle-proven. **PARTIALLY VERIFIED** rows must not be marketed as complete. **NOT APPLICABLE** is the only allowed permanent omission from the SQL drop-in claim.
|
|
129
|
+
|
|
130
|
+
## Fleet administration and portability
|
|
131
|
+
|
|
132
|
+
The wire fleet adapter supports dynamic isolated namespace listeners, finite numeric seeds,
|
|
133
|
+
boot/reset logical clocks, connection admission limits, private pre-ready initialization listeners
|
|
134
|
+
and bounded read-only inspection of the same wire engine. `mockingbird.postgres/v1` archives carry
|
|
135
|
+
PGMM bytes for every database plus clock, fault and PRNG state, decoded before restoring. Live
|
|
136
|
+
sessions remain a capture/reset conflict. Cross-service latency/fault profiles are rejected for
|
|
137
|
+
PostgreSQL; clock profiles are supported. This adds fleet orchestration around existing SQL and
|
|
138
|
+
snapshot semantics, not a broader SQL compatibility claim. Acceptance evidence is
|
|
139
|
+
`packages/adapters/node/fleet.management.test.ts` using the unmodified `pg` wire client.
|
|
140
|
+
See [Fleets](../../../docs/FLEETS.md).
|
package/dist/admin.js
CHANGED
|
@@ -306,7 +306,7 @@ var assertSnapshotDocument = (value, label = "snapshot") => {
|
|
|
306
306
|
});
|
|
307
307
|
}
|
|
308
308
|
if (value.clock !== void 0) {
|
|
309
|
-
if (!isRecord(value.clock) || typeof value.clock.now !== "number" || typeof value.clock.frozen !== "boolean")
|
|
309
|
+
if (!isRecord(value.clock) || typeof value.clock.now !== "number" || !Number.isFinite(value.clock.now) || typeof value.clock.frozen !== "boolean")
|
|
310
310
|
throw new ControlError(`${label}.clock: expected {now, frozen}`);
|
|
311
311
|
}
|
|
312
312
|
return value;
|