v0.3.15
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 jsonfrom 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 with502 … 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 claudeno 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 trackspyprojectagain (762c133)
Full Changelog: v0.3.14...v0.3.15