Parity tests: Cap divergence for request and response bodies
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 13
- Forks
- 40
- Avg merge
- 12h 17m
- Merged PRs (30d)
- 156
Description
The inbound-request-overflow fixture (#937) covers extproc + reverseproxy at their shared 1 MiB cap. Two adjacent caps have no coverage today, and each is a real divergence between deployment shapes:
| Direction | extproc | reverseproxy | forwardproxy |
|---|---|---|---|
| Request body | 1 MiB | 1 MiB | 10 MiB |
| Response body | 1 MiB | 1 MiB | 10 MiB |
Why it matters
A body between 1 MiB and 10 MiB (agent egress with concatenated history + tool manifest, LLM streaming response) is accepted on the laptop path (forwardproxy) and rejected on the Kubernetes envoy-sidecar path (extproc). The two caps have grown independently in authbridge/authlib/listener/{extproc,forwardproxy}/server.go — nothing forces the operator-visible contract to be either "same cap" or "documented gap."
Anthropic Claude Code sessions produce 5 MiB request bodies (measured in PR #904); response bodies follow suit.
Fix
Two fixtures, one shape:
- Outbound request-body overflow — body between 1 MiB and 10 MiB,
direction: pipeline.Outbound. Forwardproxy accepts (pipeline runs, wire status 200); extproc rejects (pipeline refused pre-run, wire status 413). - Response-body overflow — upstream serves a body between 1 MiB and 10 MiB. Same asymmetric outcome: forwardproxy accepts, extproc + reverseproxy reject with 502.
Both are asymmetric-per-listener — not a naive assertParity call. Options:
- Add an
expectPerListener map[string]expectedBehaviorfield to the fixture, or - Use per-listener sub-tests rather than the shared harness.
Follow-up from #937.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the inbound-request-overflow fixture referenced from #937 and inspect authbridge/authlib/listener/{extproc,forwardproxy}/server.go to understand the existing caps. Add request- and response-body overflow coverage with per-listener expectations for forwardproxy, extproc, and reverseproxy. Done means bodies between 1 MiB and 10 MiB produce the specified acceptance or rejection status for each listener.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- testing
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100