Repository navigation
sdk-sync: API 2.0.0+ffb34b7 → sdk-java 2.0.0 (major) - #81
marketdata-sdk-sync[bot] wants to merge 1 commit into
Conversation
tests: Build fails as expected — `DteFilter` doesn't exist yet, which is exactly the compilation failure phase 1b requires. Added to `OptionsResourceTest.java` (no production code touched): - 4 wire tests for the new `?dte` forms (single value, comma list, closed range, comparison operator) - 1 parity test (sync vs async) for the list form - 6 validation tests (new 36500 upper bound on `dte(int)` and `DteFilter.range`, plus `DteFilter.list`/`range`/`comparison` input checks) - The regression case (`expirationFilterDteRejectsNegative`) already existed unchanged, so nothing was added for it - Added the `DteFilter` import needed by the new cases implement: Build and tests pass, only production/test source files touched, no forbidden paths modified. Added `DteFilter.java` (new sealed type: `Exact`/`ListOf`/`Range`/`Comparison`, mirroring `StrikeFilter`) to model the four wire forms of the now-string `?dte=` parameter, with shared `[0, 36500]` validation. `ExpirationFilter.dte(int)` now delegates to `DteFilter.exact(...)` (keeping old call sites and negative-rejection behavior working) plus a new `dte(DteFilter)` overload. `OptionsResource` gained a `dteFilterWireValue` helper analogous to `strikeFilterWireValue` to render each variant onto the query string. `gradle test` and `gradle build` pass (required a `spotlessApply` formatting pass on the test file). changelog: Added changelog entry documenting the `DteFilter` sealed type for the string-valued `?dte=` parameter in API 2.0.0, with migration guidance for the removed `days()` accessor.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #81 +/- ##
============================================
+ Coverage 98.27% 98.29% +0.02%
- Complexity 1043 1056 +13
============================================
Files 123 124 +1
Lines 2606 2646 +40
Branches 301 305 +4
============================================
+ Hits 2561 2601 +40
Partials 45 45
Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
⛔ Blocked — Code reviewThis adds four string wire forms for the options-chain DTE filter while retaining the integer factory. Version impact: major (1.0.0 -> 2.0.0). Rating patch 3/6 (incomplete) · proof 5/6 (reproducible) · overall 3/6 Before merge
FindingsBlocking
Should fix
Reviewed |
Generated by sdk-auto-sync for API release 2.0.0 (commit
ffb34b7).Changes in the API surface
Snapshots
ae2b047c8f6f→c2a31e277345:What the agent did
tests: Build fails as expected —
DteFilterdoesn't exist yet, which is exactly the compilation failure phase 1b requires.Added to
OptionsResourceTest.java(no production code touched):?dteforms (single value, comma list, closed range, comparison operator)dte(int)andDteFilter.range, plusDteFilter.list/range/comparisoninput checks)expirationFilterDteRejectsNegative) already existed unchanged, so nothing was added for itDteFilterimport needed by the new casesimplement: Build and tests pass, only production/test source files touched, no forbidden paths modified.
Added
DteFilter.java(new sealed type:Exact/ListOf/Range/Comparison, mirroringStrikeFilter) to model the four wire forms of the now-string?dte=parameter, with shared[0, 36500]validation.ExpirationFilter.dte(int)now delegates toDteFilter.exact(...)(keeping old call sites and negative-rejection behavior working) plus a newdte(DteFilter)overload.OptionsResourcegained adteFilterWireValuehelper analogous tostrikeFilterWireValueto render each variant onto the query string.gradle testandgradle buildpass (required aspotlessApplyformatting pass on the test file).changelog: Added changelog entry documenting the
DteFiltersealed type for the string-valued?dte=parameter in API 2.0.0, with migration guidance for the removeddays()accessor.Files
CHANGELOG.mdsrc/main/java/com/marketdata/sdk/OptionsResource.javasrc/main/java/com/marketdata/sdk/options/DteFilter.javasrc/main/java/com/marketdata/sdk/options/ExpirationFilter.javasrc/test/java/com/marketdata/sdk/OptionsResourceTest.javaVersion
Public-surface change computed by the pipeline: major — next version 2.0.0 (from 1.0.0).
DteFilterDteFilter.MAX_DAYSDteFilter.exact(int)DteFilter.list(int[])DteFilter.range(int, int)DteFilter.comparison(DteFilter.Operator, int)DteFilter.ExactDteFilter.ListOfDteFilter.RangeDteFilter.ComparisonDteFilter.OperatorDteFilter.Operator.GTDteFilter.Operator.GTEDteFilter.Operator.LTDteFilter.Operator.LTEDteFilter.Operator.wireValue()ExpirationFilter.dte(DteFilter)ExpirationFilter.Dte— Record component changed from int days to DteFilter filter; constructor and filter() accessor signatures now differ.ExpirationFilter.Dte.days()Test plan
12 case(s) (wire 4, regression 1, validation 6, parity 1)
chainExpirationFilterDteSingleValueTranslatesToDteParamchainExpirationFilterDteListTranslatesToCommaSeparatedDteParamchainExpirationFilterDteRangeTranslatesToDashedDteParamchainExpirationFilterDteComparisonRendersWithOperatorPrefixexpirationFilterDteRejectsNegativeexpirationFilterDteRejectsAboveMaximumdteFilterListRejectsEmptyListdteFilterListRejectsNegativeElementdteFilterRangeRejectsMinGreaterThanMaxdteFilterRangeRejectsMaxAboveMaximumdteFilterComparisonRejectsNegativeValuechainExpirationFilterDteListSyncSendsSameWireAsAsyncReviewer notes
Job log
The full record of this job — every phase, test and build result, review findings and how they were resolved — is in
.sdk-sync/2.0.0-ffb34b7.mdon this branch.4 coder run(s) · 3 review(s) · 64 turns · 3,827,706 tokens · US$ 2.81 · item
5c097984-5f7b-401b-abba-235a3f417767Agent runs