Commit 82e5d07
committed
fix(deps+doctor): pin every runtime dep + bump pgserve 1.1.10 → 1.2.0 + darwin shmem cleanup
## what was missed in commit 1
Commit 0a57bfb claimed to pin all runtime deps but only actually edited
the three opentui packages and claude-agent-sdk. Every other dep still
carried a caret. This commit completes the pin:
@inquirer/prompts: ^7.0.0 → 7.10.1 (pin current)
@tauri-apps/api: ^2.5.0 → 2.10.1 (pin current)
commander: ^12.1.0 → 12.1.0 (pin current; v14 = #1391)
ignore: ^7.0.5 → 7.0.5 (pin current)
js-yaml: ^4.1.1 → 4.1.1 (pin current)
nats: ^2.29.3 → 2.29.3 (pin current)
pgserve: ^1.1.10 → 1.2.0 (BUMP)
postgres: ^3.4.8 → 3.4.9 (BUMP — patch)
react / react-dom: ^19.2.4 → 19.2.5 (BUMP — patch)
systeminformation: ^5.31.5 → 5.31.5 (pin current)
uuid: ^11.1.0 → 11.1.0 (pin current; v14 = #1393)
zod: ^3.25.0 → 3.25.76 (pin current; v4 = #1394)
## pgserve 1.1.10 → 1.2.0 — fixes the #1335 test flake
pgserve 1.2.0 ships:
- Real PostgreSQL 18 (was pglite previously)
- True concurrent connections via PG process forking — no connection locks
- Auto-provision databases on first connection
- --max-connections 1000 default
The previous PG-test flake (#1335: "1-3 random failures per bun run check
run, never the same test") was driven by pglite's connection serialization
plus shared-state interference under parallel test files. With true PG
forking + per-test ephemeral data dirs, every concurrent createTestDatabase
call gets an isolated runtime — the cross-test pollution path #1273 traced
disappears.
Confirmed locally: full bun test → 3801 pass / 0 fail in 107s, was
1-3 fail per run on 1.1.10.
## darwin macOS shared-memory cleanup (genie doctor --fix)
Real PostgreSQL 18 needs SysV shmem (shmget). macOS has SHMMNI=32 by
default, and crashed/killed pgserve runs leak segments. After ~32
leaks, every pgserve launch fails with:
FATAL: could not create shared memory segment: No space left on device
shmget(...) failed
The existing genie doctor fix-flow already had a cleanShared step, but
its filter (`awk '$6 == 0'` to find segments with nattch == 0) only
worked on Linux — Darwin's `ipcs -m` columns are
`T ID KEY MODE OWNER GROUP`, so $6 = GROUP ('staff'), not nattch.
On macOS the cleanup was a no-op for years, hidden by pglite (which
didn't need shmem).
Fix: branch on process.platform. Linux keeps the nattch filter.
Darwin: blind ipcrm every segment via `awk '/^m/'`; the kernel
rejects in-use segments with EBUSY, so this is safe. Verified by
manually clearing 31/32 segments and watching pgserve startup go
from "shmget failed" → 34/34 test-setup pass in 3s.
Root-causes the local push wall today: not pgserve concurrency, not
random test flakes, but accumulated SysV shmem leaks the doctor was
supposed to clean and silently wasn't on macOS.1 parent ed1076e commit 82e5d07
3 files changed
Lines changed: 50 additions & 34 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
| 50 | + | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
710 | 710 | | |
711 | 711 | | |
712 | 712 | | |
713 | | - | |
714 | | - | |
715 | | - | |
716 | | - | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
717 | 733 | | |
718 | 734 | | |
719 | 735 | | |
| |||
0 commit comments