fix: generate_keys 补充 PROXY_HMAC_KEY 生成,CLI handler 增加 ReadError 容错

- generate_keys.py 新增 PROXY_HMAC_KEY 生成并输出 aether-proxy.toml 配置示例
- .env.example 完善 PROXY_HMAC_KEY 注释说明
- cli_handler_base.py 两处流式处理增加 httpx.ReadError 异常捕获,
  代理连接中断时与 RemoteProtocolError 保持一致的降级处理
This commit is contained in:
fawney19
2026-02-07 20:35:25 +08:00
parent 31bc452374
commit 10bd14c223
3 changed files with 45 additions and 3 deletions

View File

@@ -1421,6 +1421,22 @@ class CliMessageHandlerBase(BaseMessageHandler):
yield f"event: error\ndata: {json.dumps(error_event)}\n\n".encode()
else:
raise
except httpx.ReadError:
# 代理/上游连接读取失败(如 aether-proxy 中断),与 RemoteProtocolError 处理逻辑一致
self._flush_remaining_sse_data(
ctx, buffer, decoder, sse_parser, record_chunk=not needs_conversion
)
if ctx.data_count > 0:
error_event = {
"type": "error",
"error": {
"type": "connection_error",
"message": "代理或上游连接读取失败,部分响应已成功传输",
},
}
yield f"event: error\ndata: {json.dumps(error_event)}\n\n".encode()
else:
raise
finally:
try:
await response_ctx.__aexit__(None, None, None)
@@ -1962,6 +1978,22 @@ class CliMessageHandlerBase(BaseMessageHandler):
yield f"event: error\ndata: {json.dumps(error_event)}\n\n".encode()
else:
raise
except httpx.ReadError:
# 代理/上游连接读取失败(如 aether-proxy 中断),与 RemoteProtocolError 处理逻辑一致
self._flush_remaining_sse_data(
ctx, buffer, decoder, sse_parser, record_chunk=not needs_conversion
)
if ctx.data_count > 0:
error_event = {
"type": "error",
"error": {
"type": "connection_error",
"message": "代理或上游连接读取失败,部分响应已成功传输",
},
}
yield f"event: error\ndata: {json.dumps(error_event)}\n\n".encode()
else:
raise
finally:
try:
await response_ctx.__aexit__(None, None, None)