github dtzp555-max/ocp v3.12.0

10 hours ago

v3.12.0 (2026-04-25)

Features

  • Streaming heartbeat — opt-in SSE comment frame (: keepalive\n\n) emitted during silent windows on the streaming response. Controlled by CLAUDE_HEARTBEAT_INTERVAL env var (ms; 0 = disabled, default). Covers both pre-first-byte and mid-stream tool-use pauses. Addresses #47. See design doc.
  • X-Accel-Buffering: no response header added to SSE responses so heartbeats survive nginx/Cloudflare default buffering.

Behavior changes

  • SSE headers are now sent immediately after the claude CLI spawns successfully, not on first stdout byte. The rare "spawn succeeded but subprocess died before any byte" path now closes the SSE stream cleanly rather than returning a JSON error.

Config additions

Variable Default Description
CLAUDE_HEARTBEAT_INTERVAL 0 (disabled) Interval in ms for SSE keepalive comment frames on streaming path. Resets on every real frame.

Don't miss a new ocp release

NewReleases is sending notifications on new releases.