Skip to content

Remove ErrorResult, adopt exception-based error model#1246

Closed
quinnj wants to merge 56 commits intojq-http2from
jq/remove-error-result
Closed

Remove ErrorResult, adopt exception-based error model#1246
quinnj wants to merge 56 commits intojq-http2from
jq/remove-error-result

Conversation

@quinnj
Copy link
Member

@quinnj quinnj commented Feb 11, 2026

Summary

  • Adapt to Reseau's new exception-based error model (Remove ErrorResult, adopt exception-based error model JuliaServices/Reseau.jl#10)
  • Replace AwsIO module references with Reseau.Sockets
  • Fix channel_slot_send_message result check in stream.jl (now returns nothing, throws on error)
  • Change WsChannelHandler vtable methods from ::Int to ::Nothing
  • Fix unsafe_string call on Reseau.error_str (returns String, not Ptr)
  • Update tests for new error patterns

Note: This branch is based on jq-http2 which has in-progress HTTP/2 work. Some server/client integration test failures are pre-existing from that branch, not caused by ErrorResult removal.

Test plan

  • Non-server tests pass locally (Headers, HTTPVersion, sniff, multipart, Handlers)
  • Server/client integration tests have pre-existing failures from jq-http2 branch
  • CI passes on all platforms

🤖 Generated with Claude Code

quinnj added 30 commits January 24, 2026 21:18
Add HTTPVersion and header helper APIs.
Implement request options: copyheaders, basicauth,
canonicalize_headers, detect_content_type, proxy/pool,
logerrors/logtag.
Fix request/body handling, stream error propagation,
websocket control frames, and header duplication.
Add tests for headers, httpversion, client options,
and websocket ping/pong.
Implement HTTP.open with streaming IO for requests/responses.
- Add stream IO methods, lifecycle control, and GC rooting
- Prepare HTTP/1 chunked requests before stream creation
- Add client streaming tests for GET and POST
Add listen/listen! wrappers and blocking serve.
- Enable stream handlers with request-body streaming and chunked responses
- Add server stream helpers (setstatus/setheader) and tests
- track control frames and fragmented messages
- add close handling with error propagation
- cover fragmentation/close in tests
- gate retries by idempotency and body retryability
- honor retry_delays and retry_check overrides
- track retry counts in response metrics
- add retry behavior tests
quinnj and others added 26 commits January 25, 2026 04:11
Adapt to Reseau's new exception-based error model:
- Replace AwsIO module references with Reseau.Sockets
- Fix channel_slot_send_message result check (now returns nothing)
- Change WsChannelHandler vtable methods from ::Int to ::Nothing
- Fix unsafe_string call on Reseau.error_str (returns String, not Ptr)
- Update tests for new error patterns

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@quinnj quinnj closed this Feb 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant