fix: close stream adaptive gaps and switch notify to stario v0.1.1

- make stream fast path honor adaptive soft payload limits end-to-end
  - split oversized fast-stream payloads into sequential frames before batching
  - use adaptive soft cap when encoding stream batch payloads
  - move timeout-like error detection into production code for adaptive tx
  - tune notify FrameReader read size explicitly to avoid throughput regression
  - drop local stario replace and depend on released b612.me/stario v0.1.1
This commit is contained in:
2026-04-18 16:05:57 +08:00
parent 4f760f2807
commit f038a89771
76 changed files with 12656 additions and 906 deletions
+12 -6
View File
@@ -7,17 +7,19 @@ import (
)
type StreamOpenRequest struct {
StreamID string
DataID uint64
Channel StreamChannel
Metadata StreamMetadata
ReadTimeout time.Duration
WriteTimeout time.Duration
StreamID string
DataID uint64
FastPathVersion uint8
Channel StreamChannel
Metadata StreamMetadata
ReadTimeout time.Duration
WriteTimeout time.Duration
}
type StreamOpenResponse struct {
StreamID string
DataID uint64
FastPathVersion uint8
Accepted bool
TransportGeneration uint64
Metadata StreamMetadata
@@ -92,6 +94,8 @@ func (c *ClientCommon) handleInboundStreamOpen(msg *Message) {
return
}
scope := clientFileScope()
req.FastPathVersion = negotiateStreamFastPathVersion(req.FastPathVersion)
resp.FastPathVersion = req.FastPathVersion
if req.DataID == 0 {
req.DataID = runtime.nextDataID()
resp.DataID = req.DataID
@@ -178,6 +182,8 @@ func (s *ServerCommon) handleInboundStreamOpen(msg *Message) {
}
transport := messageTransportConnSnapshot(msg)
scope := serverFileScope(logical)
req.FastPathVersion = negotiateStreamFastPathVersion(req.FastPathVersion)
resp.FastPathVersion = req.FastPathVersion
if req.DataID == 0 {
req.DataID = runtime.nextDataID()
resp.DataID = req.DataID