0.4 is the release where the scheduler stopped being an implementation detail.
What’s new
Continuous batching now admits and retires sequences without a barrier, and prefill can be disaggregated onto separate workers so a long prompt no longer stalls everyone’s decode.
Why you can read it
The whole runtime is about 11k lines, and no vendor SDK sits in the hot path. That is a deliberate constraint: when the scheduler makes a decision you did not expect, you should be able to find the line that made it.