Skip to content

refactor(mdds): forward list order and interval verbatim, matching the terminal#1202

Merged
userFRM merged 2 commits into
mainfrom
refactor/list-wire-order-and-interval-verbatim
Jul 12, 2026
Merged

refactor(mdds): forward list order and interval verbatim, matching the terminal#1202
userFRM merged 2 commits into
mainfrom
refactor/list-wire-order-and-interval-verbatim

Conversation

@userFRM

@userFRM userFRM commented Jul 11, 2026

Copy link
Copy Markdown
Owner

The terminal REST layer is a pure pass-through (it streams the server DataTable in wire order and forwards the interval string unchanged). Two SDK behaviors diverged and are removed on terminal-parity grounds, verified against the decompiled terminal.

List endpoints preserve wire order

sorted_list_values re-sorted every list_* return (roots / symbols, expirations, strikes, dates) into numeric-aware ascending order. The terminal streams these lists in wire order untouched (AbstractGrpcBridge iterates rows in received order), so the sort had no terminal counterpart. Lists now come back in server order.

Interval forwarded verbatim

normalize_interval silently snapped an arbitrary millisecond string ("250" to "500ms", "60000" to "1m") to the nearest documented preset. The terminal forwards the interval string as-is and the server accepts only the closed preset enum, throwing on anything else. The codegen no longer wraps interval args, and validate_interval now rejects non-preset input (including raw milliseconds) client-side. Interval parameter docs regenerated to drop the millisecond-string mention.

Changelog catch-up

Also adds the [Unreleased] entry for the QuoteTick.midpoint removal that shipped in the previous change without a note. All three land in the same 0.2.0 window.

Part of the ongoing terminal-parity work; the calendar is_open derived boolean follows separately (it is a POD-struct-layout change).

claude added 2 commits July 12, 2026 01:50
…e terminal

The terminal's REST layer is a pure pass-through: it streams the server's
DataTable in wire order and forwards the interval string unchanged. Two SDK
behaviors diverged from that and are removed.

List endpoints no longer re-sort their values. `sorted_list_values` imposed a
numeric-aware ascending order on every `list_*` return (roots, expirations,
strikes, dates); the wire order is the server's order and is now preserved.

The interval argument is no longer snapped to the nearest preset.
`normalize_interval` silently mapped an arbitrary millisecond string (`"250"`,
`"60000"`) to a documented bucket; the server accepts only the closed preset
enum and the terminal forwards the string as-is. The codegen no longer wraps
interval args, and `validate_interval` now rejects anything outside the preset
set client-side instead of accepting raw milliseconds. Raw-ms shorthand is a
breaking change to the `interval` parameter.

Interval parameter docs are regenerated to drop the millisecond-string mention.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The interval parameter no longer accepts raw-millisecond strings, but the
OpenAPI spec, the symbology article, the codegen fallback description, an
example fixture, and the local server's doc comment still advertised
milliseconds ("60000") and used it in every history-endpoint code sample —
snippets that now fail client-side validation. Rewrite the descriptions to the
closed preset enum and switch the example interval to "1m" (the preset for the
same one-minute bar).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@userFRM userFRM merged commit 70eb69a into main Jul 12, 2026
54 checks passed
@userFRM userFRM deleted the refactor/list-wire-order-and-interval-verbatim branch July 12, 2026 00:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants