acpmux: remove the 15 MiB message cap

TE
5d ago
+86-70

Leo asked: “Why is there a 15 MB cap and why are we not following protocol/transport best practices?”

This removes the 15 MiB acpmux message ceiling by aligning the safe inline message budget with the transport frames already used by the app and daemon: 31 MiB for JSON-RPC messages, with a 28 MiB prompt-inline budget for envelope and relay metadata. Existing staged uploads and zlib frame compression remain in use for larger or attachment-heavy payloads, so arbitrary-size files continue to travel by reference instead of being forced into one frame.

The transport comments, wire-size fixture, and prompt budget tests now exercise the larger limit with a 20-screenshot batch and copied attachments. This keeps protocol frames bounded while eliminating the user-visible 15 MiB hard stop.

Validation: focused Bun prompt-budget tests and acpmux Rust transport tests.

Agent session: agent session
🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Removes the 15 MiB acpmux message ceiling to match the transport frames the app and daemon already accept. acpmux now takes one JSON-RPC message up to 31 MiB, with a 28 MiB prompt-inline budget for the envelope and relay metadata. Staged uploads and zlib frame compression still carry larger or attachment-heavy payloads, so files keep traveling by reference.

Tests now exercise the larger limit: a 20-screenshot batch, 15 image copies, reply-fit fixtures sized from the reply budget, list/page fixtures scaled up to stay past the bound, and peer-link fixtures using the large frame config with a 32 MiB oversized record.