• Stefy Lanza (nextime / spora )'s avatar
    coderai broker: actually stream responses (don't wait for done before yielding) · 3c7fc7c2
    Stefy Lanza (nextime / spora ) authored
    Streaming was scaffolded (stream_queue, _publish_stream_response,
    wait_for_stream_event, _iter_broker_stream_chunks) but send_request always awaited
    the terminal future and then popped the pending entry in finally — so by the time
    _broker_stream began consuming, the stream was over and its queue was gone. Result:
    the whole reply arrived at once.
    
    Fixes:
    - send_request: for streaming requests, return a {event:"stream_start"} immediately
      and do NOT pop _pending in finally — the consumer drives it. Pop on error.
    - _publish_stream_response: queue EVERY event (chunks AND the terminal done) so the
      consumer's loop receives the end marker; still resolves the future for safety.
    - finish_stream(): new — removes the streaming request's _pending once drained.
    - wait_for_stream_event: simplified to a queue.get (dropped the event_log path).
    - providers/coderai._iter_broker_stream_chunks: wrap in try/finally that calls
      finish_stream(request_id) on completion/error; treat stream_start as a no-data
      continue.
    
    Pairs with the coderai-side change that emits chunk/done envelopes.
    Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_011DDv7BchtZQWsnPG6Jm49m
    3c7fc7c2
Name
Last commit
Last update
..
app Loading commit data...
auth Loading commit data...
payments Loading commit data...
providers Loading commit data...
routes Loading commit data...
__init__.py Loading commit data...
aisbf.sh Loading commit data...
analytics.py Loading commit data...
batching.py Loading commit data...
cache.py Loading commit data...
classifier.py Loading commit data...
coderai_broker.py Loading commit data...
coderai_registry.py Loading commit data...
config.py Loading commit data...
context.py Loading commit data...
cost_extractor.py Loading commit data...
database.py Loading commit data...
email_utils.py Loading commit data...
geolocation.py Loading commit data...
handlers.py Loading commit data...
mcp.py Loading commit data...
models.py Loading commit data...
prompt_analysis.py Loading commit data...
streaming_optimization.py Loading commit data...
studio.py Loading commit data...
studio_adapters.py Loading commit data...
studio_services.py Loading commit data...
tor.py Loading commit data...
utils.py Loading commit data...