gabriel / musehub public
feat BREAKING task/hypercorn-production #1 / 1
AI Agent gabriel · 154 days ago · Apr 23, 2026 · Diff

feat: switch production to hypercorn h2c + nginx grpc_pass for gRPC streaming

- entrypoint.sh: always use hypercorn (was uvicorn in production, breaking gRPC) Local dev: TLS cert present -> HTTPS+HTTP/2 via ALPN Production: no TLS cert -> h2c (HTTP/2 cleartext) for nginx grpc_pass - nginx-cf.conf: grpc_pass for /push/stream (HTTP/2 h2c to hypercorn) All other endpoints keep proxy_pass HTTP/1.1 - test_hypercorn_http2.py: 6 tests confirming hypercorn accepts h2c connections

sha256:b9f257889475f17486cbcb35204fffff0341adb3426e33a81c9e09041399ea8b sha
+14 symbols
sha256:47056a7d24d5c705305c22f1e2b7ba1d92bfe9233bac96aad3c2388c1460462c snapshot
+14
symbols added
0
dead code introduced
Semantic Changes 14 symbols
~ tests/test_hypercorn_http2.py .py 14 symbols added
+ _free_port function function _free_port L62–65
+ _h2c_get function function _h2c_get L68–113
+ annotations import import annotations L13–13
+ asyncio import import asyncio L15–15
+ pytest import import pytest L19–19
+ socket import import socket L16–16
+ threading import import threading L17–17
+ time import import time L18–18
+ test_hypercorn_asyncio_serve_is_importable function function test_hypercorn_asyncio_serve_is_importable L30–31
+ test_hypercorn_config_h2_in_default_alpn function function test_hypercorn_config_h2_in_default_alpn L50–55
+ test_hypercorn_config_h2c_no_tls function function test_hypercorn_config_h2c_no_tls L42–47
+ test_hypercorn_config_is_importable function function test_hypercorn_config_is_importable L34–35
+ test_hypercorn_is_importable function function test_hypercorn_is_importable L26–27
+ test_hypercorn_live_h2c_http2 function function test_hypercorn_live_h2c_http2 L116–173
← Older Oldest on task/hypercorn-production
All commits
Newer → Latest on task/hypercorn-production

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:b9f257889475f17486cbcb35204fffff0341adb3426e33a81c9e09041399ea8b --body "your comment"