feat(quote)!: remove the derived QuoteTick.midpoint column#1201
Merged
Conversation
The engine-vs-terminal audit flagged QuoteTick.midpoint as a client-side derivation: the parser computed (bid + ask) / 2 and surfaced it as a column the wire never sends. The terminal's gRPC bridge is pure pass-through and emits no midpoint for quotes — this is the same class as the already-removed derive_ohlcvc and local greeks calc. The SDK's contract is to deliver exactly what the terminal delivers, so the derived column is removed. Removed the midpoint synthesis from every tick codegen surface (parser, tdbe struct, rust/python arrow frames, python/typescript classes, cpp layout asserts) and the columns presence helper's derive_midpoint path, then regenerated. The QuoteTick struct, its Arrow/Polars column, the per-binding class fields, the C ABI struct (tail padding grows to keep the align(64) size), the MCP/server JSON serialisers, and the benches all drop it. IvTick.midpoint and MarketValueTick's integer midpoint are real server-sent values and are unchanged. Breaking: the quote history / snapshot Arrow schema and the QuoteTick binding types no longer carry a midpoint column; compute (bid + ask) / 2 caller-side if needed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
test_column_projection built two QuoteTick values with a midpoint field and asserted midpoint in the projected column set. QuoteTick no longer carries that column, so `cargo check --all-targets --features arrow,polars` failed with E0560. Remove the field from both constructions and drop midpoint from the expected column lists; the projection assertions now match the wire schema. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
From the engine-vs-terminal audit (two agents independently flagged it).
QuoteTick.midpointwas a client-side derivation — the parser computed(bid + ask) / 2and surfaced it as a column the wire never sends. The terminal's gRPC bridge is pure pass-through and emits no midpoint for quotes; same class as the already-killedderive_ohlcvcand local greeks calc. The SDK delivers exactly what the terminal delivers, so it's gone.Removed from every codegen surface (parser, tdbe struct, rust/python arrow frames, python/typescript classes, cpp layout asserts, columns
derive_midpointpath) + regenerated. The struct, Arrow/Polars column, per-binding class fields, C-ABI struct (tail padding grows to hold the align(64) size), MCP/server JSON, and benches all drop it. IvTick.midpoint and MarketValueTick's integer midpoint are real server-sent values — unchanged.Breaking: quote Arrow schema + QuoteTick binding types no longer carry
midpoint; compute(bid+ask)/2caller-side if needed.Verified: rust lib 1063 tests pass; parity clean + --selftest 209/0; sdk_surfaces + docs_site --check pass; rs/py/ts(napi)/cpp-asserts, MCP, server, and benches all compile. Net -295.
Part of the ongoing terminal-parity obliteration; is_open / list-sort / interval-snap follow separately.