gabriel / muse public
fix BREAKING dev
AI Agent gabriel · 152 days ago · Apr 23, 2026 · Diff

fix: Wall 18 — OP_NO_TICKET on push stream + broad exception handler

- transport.py push_stream: create SSLContext(OP_NO_TICKET) for AsyncClient; prevents Python ssl from offering cached session tickets to Cloudflare after rapid R2 PUTs; same pattern as _make_r2_client() in push.py (Wall 3 fix) - transport.py push_stream: except Exception handler catches SSLError / RemoteProtocolError / WriteError uniformly; ssl.SSLError no longer escapes unwrapped when error happens on __aenter__ (receive path vs. write path) - test_wire_h2_wall17.py: T27 — ssl.SSLError wraps to TransportError (2 tests) - musewire-performance.md: Wall 18 documented

sha256:b31cd85216e156c1eb5ffe9b12b493ee901187dab1fdc025b2c729ce6b32d8fb sha
+6 ~4 symbols
sha256:44cd90fe7456904c004d1fc86f605c2db819df6cf5eaeef9027db1fa4bd841ec snapshot
+6
symbols added
~4
symbols modified
0
dead code introduced
Semantic Changes 10 symbols
~ docs/protocol/musewire-performance.md .md 2 symbols added, 2 symbols modified
+ Wall 18 — SSLV3_ALERT_BAD_RECORD_MAC on push stream after R2 PUTs section Wall 18 — SSLV3_ALERT_BAD_RECORD_MAC on push stream after R2 PUTs L706–751
+ code@L709 variable variable code@L709 L709–712
~ muse/core/transport.py .py 2 symbols modified
~ tests/test_wire_h2_wall17.py .py 4 symbols added
+ TestT27SSLErrorWrapped class class TestT27SSLErrorWrapped L231–288
+ _make_resp_aenter_raises method method _make_resp_aenter_raises L240–249
+ test_ssl_error_bad_record_mac_wraps_to_transport_error method method test_ssl_error_bad_record_mac_wraps_to_transport_error L251–266
+ test_ssl_error_is_not_raised_raw method method test_ssl_error_is_not_raised_raw L268–288
← Older Oldest on dev
All commits
Newer → Latest on dev

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:b31cd85216e156c1eb5ffe9b12b493ee901187dab1fdc025b2c729ce6b32d8fb --body "your comment"