gabriel / muse public
feat BREAKING transport dev
AI Agent gabriel · 50 days ago · Apr 22, 2026 · Diff

feat(transport): async HTTP/2 push via httpx.AsyncClient

- Replace sync httpx.Client streaming POST with httpx.AsyncClient + asyncio.run() to eliminate bidirectional H2 deadlock - Add _httpx_verify() helper: returns local self-signed cert path for localhost URLs, True (system CA) for everything else - Drop HTTP/1.1 chunked fallback; TransportError raised if httpx absent - Fix mpack.py MuseWireFrameWriter docstring: b'muse'/0x01 (was b'MWP2'/0x02)

Tests (TDD — all green): - test_wire_h2_async_push.py: T25-T28 (16 new tests) T25 AsyncClient used with http2=True T26 bidirectional streaming completes without deadlock T27 MWP frame sequence H→O*→C→E, magic b'muse', version 0x01 T28 WriteError maps to TransportError - test_transport_http2.py: updated T11-T12 mocks to AsyncClient pattern - test_wire_h2_strict.py: updated T16/T22/T24 push mocks to async; fixed __enter__ lambda → MagicMock(return_value=resp) for reliable context manager behaviour; added WriteError to mock_mod

sha256:8ee0f6b7f37cf2ced51deeb495cf2db81d0497953ffdc114a5219267f1be90f5 sha
sha256:b39eadfe14ad0abc12dd7b5a92746dbfaf665df239ef0cd81dae86787181293e snapshot
← 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:8ee0f6b7f37cf2ced51deeb495cf2db81d0497953ffdc114a5219267f1be90f5 --body "your comment"