A request pinned to a busy slot receives no bytes until the slot frees.
reasoning_control ends a thinking block on demand; the capped turn is
re-read once on the next request.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
spike/m0.py is throwaway. Findings are in docs/inference-contract.md:
cache reuse and tool parsing pass through chat-completions, the tools
array must stay fixed per epoch, and the shared router cannot meet the
slot contract. Clean throughput and slot pinning are still open because
another session was using the GPU.
docs/decisions.md lists the brief changes this implies as proposals.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>