Skip to content

Releases: smallfish06/krsec

v0.28.0

Choose a tag to compare

@github-actions github-actions released this 12 Sep 13:42

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_fields and omitted from HTTP JSON instead of being reported as zero or filled with a different financial metric. Go callers must check UnavailableFields. 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/summary returns 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 fill quantity_decimal when present. Whole-share compatibility fields remain available.
  • LS raw Go responses: numeric values are decoded as json.Number to 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-requester consumer against this library.
  • Regression tests use local mocked providers; no live orders were submitted.

Full changelog: v0.27.0...v0.28.0

v0.27.0

Choose a tag to compare

@github-actions github-actions released this 12 Sep 12:33

The spec drift check now handles transient Kiwoom and LS documentation failures with bounded retries and reports each broker independently, preserving refresh logs and diffs when any broker fails.

  • Remove Kiwoom ka10087 and ka10098 from active documented endpoints following the official retirement notice, effective September 12, 2026 at 21:00 KST. Existing exported Go constants and payload types remain available with deprecation comments for source compatibility.
  • Refresh LS chart and ETF documentation, including KRX pre/after-market times and NXT fields. Existing required inputs and the endpoint inventory are unchanged.
  • Update the Toss candle timestamp description: one-minute timestamps identify the candle end; daily timestamps identify the trading date.
  • Regenerate the published OpenAPI document.

Validation: all generated spec and OpenAPI checks, full Go race tests, go vet, build, golangci-lint, and workflow syntax/failure-path checks passed locally. Remote CI and CodeQL passed. The live spec drift check refreshed all four brokers successfully with no diff.

v0.26.0

Choose a tag to compare

@github-actions github-actions released this 05 Sep 02:36

Changelog

Bug Fixes

  • c615b7d fix(ls): collapse concurrent token issuance with singleflight

Other

  • 9532794 chore(openapi): regenerate doc/openapi.json for 2026-09-05 spec refresh
  • 50114ce chore(specs): refresh documented specs — upstream drift 2026-09-05

v0.25.0

Choose a tag to compare

@github-actions github-actions released this 15 Aug 05:52

Changelog

Other

  • 9407347 chore(openapi): regenerate doc/openapi.json for 2026-08-15 spec refresh
  • bc36f7e chore(specs): refresh documented specs — upstream drift 2026-08-15

v0.24.0

Choose a tag to compare

@github-actions github-actions released this 08 Aug 04:02

Changelog

Features

  • 642eb52 feat(openapi): make doc/openapi.json an explicit, CI-checked artifact
  • 3e7038d feat(release): publish multi-arch Docker images to GHCR, group release changelog

Bug Fixes

  • 7015c1e fix(server): declare wildcard path params as 'path...' so OpenAPI validation passes
  • 6a79693 fix(server): typed HealthResponse removes invalid empty-named OpenAPI schema

Refactoring

  • d01eefa refactor(server): split server.go into cohesive files
  • d68c646 refactor: modernize codebase with go fix — interface{} to any (492 sites), maps.Copy, builtin max

Build & Specs

  • 0376b3b build: fold per-broker spec targets into foreach-generated rules, add toss to CI drift checks

Other

  • 41252ad chore(lint): enable gosec + revive; document public API, fix examples

v0.23.0

Choose a tag to compare

@github-actions github-actions released this 08 Aug 03:11

Changelog

  • ef0cee5 fix(specs): refresh Kiwoom ust21100 spec — 4 fields now required upstream

v0.22.0

Choose a tag to compare

@github-actions github-actions released this 26 Jul 02:55

Changelog

  • 8c4f807 chore(deps): upgrade direct dependencies
  • bc5263a fix(specs): normalize LS propertyLength literal 'null' from portal

v0.21.0

Choose a tag to compare

@github-actions github-actions released this 17 Jul 05:47

Changelog

  • 5c0ac53 fix broker authentication safety
  • 9339cbf fix(specs): adapt kiwoom-specgen to portal schema change, refresh KIS/Kiwoom specs

v0.20.2

Choose a tag to compare

@github-actions github-actions released this 04 Jul 00:31

Changelog

  • 6ec149b feat(server): graceful shutdown on SIGTERM/SIGINT

v0.20.1

Choose a tag to compare

@github-actions github-actions released this 04 Jul 00:25

Changelog

  • dad5a86 fix(auth): collapse concurrent token issuance with singleflight