v0.28.0
v0.28.0
This release fixes incorrect market routing, fractional execution loss, incomplete account responses, and missing continuation support. It also adds LS common order management for tracked domestic orders.
Upgrade notes
- Balance availability: unsupported metrics are listed in
unavailable_fieldsand omitted from HTTP JSON instead of being reported as zero or filled with a different financial metric. Go callers must checkUnavailableFields. This affects Toss cash/withdrawable cash/total assets and LS cash/buying power/withdrawable cash. LS total assets now use the provider's estimated net assets. - Account summaries:
/accounts/summaryreturns HTTP 503 without partial totals when any account fails or cannot supply a required aggregate metric. - Fractional quantities: prefer
filled_quantity_decimal,remaining_quantity_decimal, and fillquantity_decimalwhen present. Whole-share compatibility fields remain available. - LS raw Go responses: numeric values are decoded as
json.Numberto preserve large order identifiers and quantities. HTTP values remain JSON numbers. - LS order management: cancel, modify, order lookup, and fills are available for domestic orders placed through this account's common API with recorded credentials and the same Korean trading date. Unknown or prior-day orders are rejected; use the raw APIs for other scopes. Cancellation acceptance is not confirmation of completion.
See the common API contract for migration details and pagination examples.
Fixes and additions
- KIS domestic placement, modification, and cancellation forward the requested exchange with current TR identifiers. Unsupported sandbox venues are rejected.
- KIS overseas candles use the correct overseas endpoint. Date-range queries paginate with explicit limits, and position-source failures no longer become successful empty holdings. The documented sandbox bond limitation is handled separately.
- Restore 106 optional KIS request properties in generated SDK types and OpenAPI documentation.
- Kiwoom quote and chart requests use venue-specific NXT/SOR symbols, validate conflicting inputs, and use documented account query and withdrawal fields.
- Add optional Go page interfaces and HTTP continuation headers for Kiwoom and LS while retaining existing raw response bodies. Common holdings and chart queries reject incomplete traversals; Kiwoom charts stop once the requested range or limit is covered.
- Preserve Toss fractional executions and calculate remaining quantities without a floating-point round trip. Daily changes use the previous trading-session close in the exchange's timezone.
- Correct Toss and LS balance field meanings and propagate upstream failures.
- Add LS account, credential, and trading-date guards for common order management, exact order identifiers, and bounded order/fill history traversal.
- Prevent failed or delayed LS reauthentication and stale automatic refreshes from replacing the active account identity or token.
KIS, Kiwoom, and Toss WebSocket support and Kiwoom common US/minute-chart expansion remain outside this release.
Validation
- Full race-enabled test suite, plus an additional LS race suite after the final authentication changes.
- Static analysis, vet, binary build, generated broker spec checks, and OpenAPI consistency checks.
- Isolated build of the existing
kis-requesterconsumer against this library. - Regression tests use local mocked providers; no live orders were submitted.
Full changelog: v0.27.0...v0.28.0