feat: add execution history queries and preserve bounded JSON payloads

This commit is contained in:
2026-09-17 14:55:23 +08:00
parent da123bba69
commit 4d4b2e9f7d
32 changed files with 1461 additions and 28 deletions

View File

@@ -95,8 +95,8 @@ func (c *Client) DialWorker(ctx context.Context, registration WorkerRegistration
if err != nil {
return nil, err
}
body, _ := json.Marshal(r)
frame, _ := json.Marshal(workerFrame{Version: "1", Type: "worker.hello", MessageID: id, Body: body})
body, _ := marshalWire(r)
frame, _ := marshalWire(workerFrame{Version: "1", Type: "worker.hello", MessageID: id, Body: body})
if err = conn.Write(handshake, websocket.MessageText, frame); err != nil {
return nil, workerIOError(err)
}
@@ -249,11 +249,11 @@ func (w *WorkerConnection) call(ctx context.Context, kind, id string, in, out an
w.mu.Unlock()
defer func() { w.mu.Lock(); delete(w.pending, id); w.mu.Unlock() }()
// 先占用有界槽再分配编码缓冲,超额调用不先复制大结果。
body, err := json.Marshal(in)
body, err := marshalWire(in)
if err != nil {
return started, errors.New("invalid Worker request JSON")
}
raw, err := json.Marshal(workerFrame{Version: "1", Type: kind, MessageID: id, SessionID: w.welcome.SessionID, Body: body})
raw, err := marshalWire(workerFrame{Version: "1", Type: kind, MessageID: id, SessionID: w.welcome.SessionID, Body: body})
if err != nil || len(raw) > 512<<10 {
return started, errors.New("Worker request exceeds frame limit")
}