mirror of
https://wget.la/https://github.com/leookun/cursor-byok
synced 2026-08-20 04:57:01 +08:00
fix(network): 修复长耗时请求被误报「Network disconnected」中断的问题
客户端扩展在慢请求(如提交信息生成)开始约 10 秒后会探测 NetworkService/IsConnected,非 200 应答即判定断网并中止进行中的请求。 此前该探测落入通配路由返回 404,导致模型仍在正常返回时界面先报断连。 - host.go: 注册 IsConnected 精确路由,恒定以 200 + 空 IsConnectedResponse 应答 - client.go: newProtoMessage 补齐 aiserver.v1.IsConnectedResponse 类型, 避免 mock 编码失败导致探测返回 502 - state_db.go: 新增强开 statsig gate 机制(cursorStateEnabledStatsigGates), 强制启用 disable_network_change_monitor_local 从源头关闭该探测; disableCursorStatsigGates 泛化为 syncCursorStatsigGateOverrides
This commit is contained in:
@@ -691,6 +691,20 @@ func (host *Host) rebuildLocked(cfg serverconfig.Config) error {
|
||||
return nil
|
||||
}),
|
||||
),
|
||||
// The always-local extension probes NetworkService/IsConnected roughly 10s
|
||||
// after any slow request starts. A 404 here is treated as "network
|
||||
// disconnected" and aborts in-flight work (e.g. commit message
|
||||
// generation) even while the model is still streaming. Always answer OK.
|
||||
server.POST("/aiserver.v1.NetworkService/IsConnected",
|
||||
server.Name("network_is_connected"),
|
||||
server.ConnectUnary(),
|
||||
server.Local(upstream.MockProtoAction(routeDeps, upstream.CompatRouteConfig{
|
||||
Name: "network_is_connected",
|
||||
StatusCode: http.StatusOK,
|
||||
MockProtoType: "aiserver.v1.IsConnectedResponse",
|
||||
MockBuilder: upstream.EmptyMockBuilder,
|
||||
})),
|
||||
),
|
||||
server.Any("/aiserver.v1.NetworkService/*",
|
||||
server.Name("network_service"),
|
||||
server.HTTP(),
|
||||
|
||||
@@ -451,6 +451,8 @@ func newProtoMessage(typeName string) (proto.Message, error) {
|
||||
return &aiserverv1.SubmitLogsResponse{}, nil
|
||||
case "aiserver.v1.TrackEventsResponse":
|
||||
return &aiserverv1.TrackEventsResponse{}, nil
|
||||
case "aiserver.v1.IsConnectedResponse":
|
||||
return &aiserverv1.IsConnectedResponse{}, nil
|
||||
default:
|
||||
return nil, fmt.Errorf("unsupported proto message type %q", typeName)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user