{"content":"Development journal for commit a612c861 (feat: harden ACP stdio peer with line cap, prefix classification, and write queue).\n\nHardened the shared ACP backend's stdio transport, borrowing the framing semantics of long-lived ACP orchestrators. A bounded NDJSON framer (16 MiB line cap, 64 KiB retained prefix) replaces bare readline; oversized frames are classified from their prefix instead of buffered: agent requests get a -32600 reply, responses bound to a pending call settle that call immediately (no more hanging until the 20-minute turn timeout), an unbindable oversized response aborts the transport, and oversized notifications are dropped with a debug log. Outbound writes go through a serialized queue with a 32 MiB byte budget and an outgoing line-length check, and a stdin error handler routes EPIPE into the fail-fast path instead of an unhandled stream error crashing the daemon. Added acp-protocol.ts with types hand-derived from schema v1.21.0 (open enums, zero new dependencies — the official @zed-industries package would pull zod into the published package). Unrecognized session update kinds are now logged instead of vanishing silently. Five new fake-agent tests cover oversized request/response/notification, the unbindable-response abort, and early agent exit; the full tests/llm directory (225 tests) passes.\n\nVerification:\npnpm run build && node --test --test-concurrency=1 tests/llm/llmExecutorCore.test.mjs tests/llm/llmProviderExpansion.test.mjs\n\nFiles:\nsrc/core/llm/executor/backends/acp-ndjson-framer.ts\nsrc/core/llm/executor/backends/acp-protocol.ts\nsrc/core/llm/executor/backends/acp-rpc-prefix.ts\nsrc/core/llm/executor/backends/acp-write-queue.ts\nsrc/core/llm/executor/backends/acp.ts\ntests/llm/llmExecutorCore.test.mjs","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}