Both sides of the UDS IPC can grow their send queues unboundedly if the peer is slow to drain:
- Kotlin: `NodeJSIPC.kt#L36` uses `Channel(Channel.UNLIMITED)` for sends.
- Backend: `backend/lib/message-port.js#L78-L94` queues messages without bound while `#state === 'idle'`.
Bare's `WOULD_BLOCK`-driven Duplex applies real backpressure (see `docs/bare-architecture.md`, also called out in `docs/build-architecture-plan.md` §2). Worth adopting that pattern: cap the queue, signal back-pressure to the producer, drop or block on overflow per a documented policy.
Orthogonal to runtime swap. Worth fixing anyway — current behaviour can mask unbounded memory growth under sustained load.
Both sides of the UDS IPC can grow their send queues unboundedly if the peer is slow to drain:
Bare's `WOULD_BLOCK`-driven Duplex applies real backpressure (see `docs/bare-architecture.md`, also called out in `docs/build-architecture-plan.md` §2). Worth adopting that pattern: cap the queue, signal back-pressure to the producer, drop or block on overflow per a documented policy.
Orthogonal to runtime swap. Worth fixing anyway — current behaviour can mask unbounded memory growth under sustained load.