It has ~100 changed lines (excluding tests) across 8 commits, which is hard to review at a glance.
Would you move test commits prior to fix commits? The test commits will introduce `todo_wine` before `ok()`s expected to fail, and fix commits will remove them. That would make it easier to understand what fixes what.