alt/packages/contracts
toki c0db4b24c1 feat(live-trading): 계좌 동기화와 감사 추적을 추가한다
Live Trading Boundary의 남은 account-sync/audit-trail 작업을 완료해 운영자 headless workflow와 roadmap 완료 후보 상태를 함께 반영한다.
2026-06-08 11:18:41 +09:00
..
gen/go feat(live-trading): 계좌 동기화와 감사 추적을 추가한다 2026-06-08 11:18:41 +09:00
proto/alt/v1 feat(live-trading): 계좌 동기화와 감사 추적을 추가한다 2026-06-08 11:18:41 +09:00
README.md feat: contract codegen baseline - add proto code generation for client and server 2026-05-28 05:29:03 +09:00

ALT Contracts

This package owns ALT application-level protobuf contracts.

proto-socket remains the transport protocol. ALT messages should be defined here and carried inside proto-socket PacketBase.data.

Initial contract direction:

  • additive protobuf changes first
  • explicit handshake/version messages because proto-socket protocol 0.1 does not carry an application version field
  • market-neutral models with Korea market daily bars as the MVP path (including ListBarsRequest/ListBarsResponse and GetBacktestResultRequest/GetBacktestResultResponse for the MVP schema)
  • generated clients should be derived from proto/ sources, not edited by hand

Compatibility

  • Prefer additive fields and messages.
  • Never renumber existing fields.
  • Reserve removals or semantic rewrites for an explicit version bump.

Transport Boundary

  • proto-socket owns PacketBase, heartbeat, nonce, and transport framing.
  • ALT alt.v1 messages are application payloads carried in PacketBase.data.

Codegen

Generated outputs are committed source-of-derivation artifacts:

  • Go: packages/contracts/gen/go/alt/v1/*.pb.go (Go module git.toki-labs.com/toki/alt/packages/contracts/gen/go).
  • Dart: apps/client/lib/src/generated/alt/v1/*.pb*.dart.

Commands (run from repository root):

  • bin/contracts-gen regenerates Go and Dart outputs from proto/. Requires protoc, protoc-gen-go, and a working apps/client Flutter package (the Dart plugin is invoked via apps/client/tool/protoc-gen-dart).
  • bin/contracts-check snapshots current generated outputs, regenerates, and fails when the regeneration produces a diff. Used by bin/test to keep schema and generated code aligned.

Do not hand-edit files under packages/contracts/gen/ or apps/client/lib/src/generated/.