Skip to content

v0.3.15

Choose a tag to compare

@github-actions github-actions released this 31 Jul 10:31
· 431 commits to main since this release

Serving Claude through a --api claude seat works again on non-streaming requests.

Fixes

  • claude-seat: decode the JSON array that claude 2.1.220 prints (d429a5e)
    Recent Claude Code builds changed --output-format json from a bare result object to a JSON
    array of the whole event sequence. The seat only accepted an object, and its line-scanning
    fallback ran only when the JSON failed to parse — an array parses fine, so the fallback never
    ran and every non-streaming request failed with 502 … no result envelope, while the answer
    sat unread inside the array. Streaming was unaffected, which is why this hid for so long. All
    three output shapes are now handled.

  • launch: set only ANTHROPIC_AUTH_TOKEN, never both credential variables (0cd089a)
    grid launch claude no longer exports a second, conflicting credential variable.

  • serve: drain on held jobs, not on parked poll workers (5f494e1)
    Shutdown joined every poll worker against one shared 5s budget, and a worker parked in a
    long-poll cannot be woken — so the first one spent the entire budget and the heartbeat and
    reload joins after it got none. Teardown of an idle engine now returns immediately instead of
    always taking 5s, which shortens the window where a departing node is still registered and the
    relay keeps handing it work. Shutdown also stops reporting idle pollers as jobs whose consumers
    may lose a response.

Other changes

  • chore: re-lock so uv.lock's grid entry tracks pyproject again (762c133)

Full Changelog: v0.3.14...v0.3.15