refactor(mdds): forward list order and interval verbatim, matching the terminal#1202
Merged
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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_valuesre-sorted everylist_*return (roots / symbols, expirations, strikes, dates) into numeric-aware ascending order. The terminal streams these lists in wire order untouched (AbstractGrpcBridgeiterates rows in received order), so the sort had no terminal counterpart. Lists now come back in server order.Interval forwarded verbatim
normalize_intervalsilently 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, andvalidate_intervalnow 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 theQuoteTick.midpointremoval 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_openderived boolean follows separately (it is a POD-struct-layout change).