Proto commits in c9s/bbgo

These 73 commits are when the Protocol Buffers files have changed:

Commit:3e26ed8
Author:c9s

✨ feat(marketdata): add gRPC replay protocol and client Add pkg/marketdata/pb, a protocol for replaying historical market data between bbgo nodes, and the client source that consumes it. A separate protocol rather than an extension of bbgo.proto's MarketDataService. That service is a live subscription with no time range, its MarketData and Depth messages carry no per-event timestamp and no sequence, and it already has external users including a Python client. Retrofitting replay would either renumber fields or leave half of them meaningful in only one mode; this one is designed for the job from field number one, with a nanosecond event time and a sequence on every event and a bounded, resumable request. As a bonus, pkg/pb is untouched, so none of its generated files are regenerated and there is no unreviewable diff from a newer plugin. The protocol carries prev_sequence, which the venue supplies (Binance's "pu") and which is what actually proves no update was lost. A sequence is not a counter, so a receiver cannot check contiguity by incrementing it. grpcsource/convert.go is the sole translation boundary. The wire model uses strings for decimals and carries protobuf reflection state; the in-process model uses fixedpoint and is cheap to copy, so keeping them separate stops a proto change rippling into every consumer. Unlike a retrofit this protocol has no legacy senders, so a zero event_time_ns is rejected rather than guessed around — it would sort before every other event in a merge. Backpressure needs no policy here: the receive goroutine blocks in ChanCursor.Push, which stops it calling Recv, which closes the HTTP/2 window and stops the server. Tested against an in-process bufconn server with payloads large enough to exceed the default 64 KiB window, since small events complete regardless of the client's buffer. Also fixes a real bug in ChanCursor found by these tests: Next checked the error before reading the channel, so events the producer had already delivered were discarded when a failure arrived — silently truncating a stream immediately before the error that explained it. It now drains what arrived, then reports the failure. Makefile: the PROTOS wildcard and clean target now cover the new directory, and the pattern rule carries a note that install-grpc-tools must run first, because its pinned protoc-gen-go v1.26 is what the committed files were generated with. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SiABKm1gC5XWSF2Ex57ScX

Commit:cb51352
Author:c9s

grpc: implement cancel order

The documentation is generated from this commit.

Commit:3305488
Author:c9s

grpc: implement cancel order

The documentation is generated from this commit.

Commit:a738314
Author:c9s

grpc: fix price,quantity types

Commit:9611f47
Author:c9s

grpc: fix price,quantity types

Commit:f15f4e1
Author:c9s

grpc: add trading service

Commit:b39887b
Author:c9s

grpc: add trading service

Commit:339c72a
Author:c9s

grpc: translate private trade and balances

Commit:b35640f
Author:c9s

grpc: translate private trade and balances

Commit:a93a915
Author:c9s

grpc: convert order

Commit:000cc55
Author:c9s

grpc: convert order

Commit:8e81716
Author:c9s

grpc: separate market data message and user data message

Commit:45e827b
Author:c9s

grpc: separate market data message and user data message

Commit:606a7b3
Author:c9s

convert: trade price/volume to string

Commit:02824f3
Author:c9s

convert: trade price/volume to string

Commit:d9617b5
Author:c9s

grpc: convert kline prices to string

Commit:103d630
Author:c9s

grpc: convert kline prices to string

Commit:12ce854
Author:c9s
Committer:c9s

grpc: integrate market trade

Commit:69a32bc
Author:c9s
Committer:c9s

grpc: integrate market trade

Commit:d836126
Author:なるみ

grpc: add start/end time to fix queryklines

Commit:cc7aa4c
Author:なるみ

grpc: add start/end time to fix queryklines

Commit:fb5703b
Author:c9s
Committer:c9s

grpc: implement book stream

Commit:46cf220
Author:c9s
Committer:c9s

implement market data subscription

Commit:a4cc8f9
Author:c9s
Committer:c9s

grpc: implement book stream

Commit:c845c76
Author:c9s
Committer:c9s

implement market data subscription

Commit:4cd646e
Author:Yo-An Lin
Committer:GitHub

feature: basic grpc server (#514)

Commit:a7ea66f
Author:Yo-An Lin
Committer:GitHub

feature: basic grpc server (#514)

Commit:d797259
Author:c9s

add a basic grpc service

Commit:43abfd1
Author:c9s

add a basic grpc service

Commit:4b35d66
Author:c9s

improve proto spec

Commit:3f10e64
Author:c9s

improve proto spec

Commit:acaa68c
Author:c9s

pb: move ERROR enum to 99

Commit:64bce5e
Author:c9s

pb: move ERROR enum to 99

Commit:4fca4d9
Author:c9s

rebuild proto files and import google.golang.org/protobuf

Commit:32106ce
Author:c9s

rebuild proto files and import google.golang.org/protobuf

Commit:fb6834a
Author:c9s

fix grpc typo

Commit:20179fb
Author:c9s

fix grpc typo

Commit:034a86c
Author:なるみ
Committer:なるみ

Add grpc client

Commit:8c726ec
Author:なるみ
Committer:なるみ

Add grpc client

Commit:dedfdc5
Author:なるみ
Committer:なるみ

Remove symbol from balance

Commit:c906728
Author:なるみ
Committer:なるみ

Remove symbol from balance

Commit:b6493ad
Author:なるみ
Committer:なるみ

Change id type

Commit:1ac13ff
Author:なるみ
Committer:なるみ

Change id type

Commit:8522c0d
Author:なるみ
Committer:なるみ

Add exchange field to QueryOrderRequest

Commit:e7693f4
Author:なるみ
Committer:なるみ

Add exchange field to QueryOrderRequest

Commit:37fbe72
Author:なるみ
Committer:なるみ

Add Error message

Commit:9c358de
Author:なるみ
Committer:なるみ

Add Error message

Commit:3aeae99
Author:なるみ

Add SubcribeUserData

Commit:b3bb88a
Author:なるみ

Add SubcribeUserData

Commit:36fd5d6
Author:なるみ
Committer:なるみ

Add exchange and symbol to Ticker

Commit:af7eeed
Author:なるみ
Committer:なるみ

Add exchange and symbol to Ticker

Commit:6b10d11
Author:なるみ

Merge SuccessResponse and SubscribeResponse

Commit:f26c699
Author:なるみ

Merge SuccessResponse and SubscribeResponse

Commit:9fd4074
Author:なるみ

Add Depth message for bids and asks

Commit:bbc1cf0
Author:なるみ

Add Depth message for bids and asks

Commit:32acec5
Author:なるみ

Put exchange field in the order and trade message

Commit:c3d9baa
Author:なるみ

Put exchange field in the order and trade message

Commit:c1b7059
Author:なるみ
Committer:なるみ

Add SubmitOrder, rename variables and fix typo

Commit:a31fecb
Author:なるみ
Committer:なるみ

Add SubmitOrder, rename variables and fix typo

Commit:f2bca1d
Author:なるみ

add QueryKLines

Commit:3afdde0
Author:なるみ

add QueryKLines

Commit:7a7627e
Author:なるみ

update proto

Commit:d5a98ff
Author:なるみ

update proto

Commit:4fb8881
Author:なるみ
Committer:なるみ

Fix package path

Commit:dcfbbad
Author:なるみ
Committer:なるみ

Fix package path

Commit:72bcdaa
Author:なるみ

Move pkg/proto to pkg/pb

Commit:fae0dc6
Author:なるみ

Move pkg/proto to pkg/pb

Commit:328c507
Author:なるみ
Committer:なるみ

Update go generated code

Commit:057e7ca
Author:なるみ
Committer:なるみ

Update go generated code

Commit:3fe6fbf
Author:なるみ
Committer:なるみ

Add Trade message and support streaming

Commit:fbe8de4
Author:なるみ
Committer:なるみ

Add Trade message and support streaming

Commit:3070420
Author:なるみ
Committer:なるみ

Initial commit of protobuf

Commit:16c4191
Author:なるみ
Committer:なるみ

Initial commit of protobuf