Repository navigation
sdk-sync: API 2.0.0+ffb34b7 → sdk-java 1.1.0 (minor) - #85
marketdata-sdk-sync[bot] wants to merge 1 commit into
Conversation
tests: Confirmed: the build fails exactly as expected, due to the not-yet-implemented `dteList`/`dteRange`/`dteComparison`/`Operator` symbols. As required, I stop here without touching production code. I added 10 unit tests to `OptionsResourceTest.java` (4 wire cases, 1 regression, 5 validation) and 1 sync/parity wire test, plus 3 integration tests to `OptionsIntegrationTest.java`, exactly per the plan's names and files. `gradle test --no-daemon --console=plain` fails at `compileTestJava` with "cannot find symbol" for `dteList`, `dteRange`, `dteComparison`, and `Operator`, confirming no production code exists yet. implement: Build and tests pass, all changes stay within `src/main`, `src/test`, `src/integrationTest`, and `docs`. No commit made. Added `ExpirationFilter.dteList`/`dteRange`/`dteComparison` (plus a nested `Operator` enum) as new permitted sealed-interface variants for `?dte=`, covering the API's list/range/comparison forms while leaving `dte(int)` and its error behavior untouched. Wired the new variants into `OptionsResource`'s query-building and updated `docs/options/chain.md`. Fixed one phase-1 wire test (`chainExpirationFilterDteListTranslatesToCommaSeparatedDte`) that wrongly expected a literal comma; the repo's convention (seen in the `columns` tests) is to URL-decode before asserting, since commas are percent-encoded on the wire. `gradle build` passes after `spotlessApply` reformatted the new code. review fix 1: Resolved the one finding: added three wire-assertion tests (`chainExpirationFilterDteComparisonGtRendersWithOperatorPrefix`, `...LtRendersWithOperatorPrefix`, `...LteRendersWithOperatorPrefix`) in `OptionsResourceTest.java`, each driving `chainAsync` with `ExpirationFilter.dteComparison` for `GT`, `LT`, and `LTE` and asserting the exact percent-encoded wire form (`dte=%3E30`, `dte=%3C45`, `dte=%3C%3D45`). The existing `GTE` wire test is untouched, so all four `Operator` constants now each have a dedicated wire-form test that would fail on a wrong `wireValue`. No production code changed. `gradle test` and `gradle build` both pass. changelog: Added changelog entry under `[Unreleased]` documenting the new days-to-expiration filters (`dteList`, `dteRange`, `dteComparison`) and the `Operator` enum for the options chain endpoint, responding to API 2.0.0.
🧾 Job log — sdk-syncsdk-auto-sync job log
Changes in the API surface1. test planCoder (20 turns, US$ 0.73) — test plan, 14 case(s) (wire 4, regression 1, validation 5, parity 1, integration 3):
Plan reviewer (13 turns, US$ 0.55): approved
2. testsCoder (7 turns, US$ 0.60):
Gates:
3. implementCoder (29 turns, US$ 1.09):
Gates:
4. review 1Reviewer (9 turns, US$ 1.24): 1 blocking finding(s)
Security (2 turns, US$ 0.38): approved
5. review fix 1Findings sent back to the coder:
Coder (8 turns, US$ 0.30):
Gates:
6. review 2Reviewer (15 turns, US$ 1.56): 1 blocking finding(s)
Security (2 turns, US$ 0.41): 1 blocking finding(s)
7. assessAnalyst (4 turns, US$ 0.10) — public surface:
Computed by the pipeline: minor, 1.0.0 → 1.1.0; changelog entry written 8. changelogCoder (4 turns, US$ 0.06):
Gates:
Unresolved findings
Totals
Agent runs
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #85 +/- ##
============================================
+ Coverage 98.27% 98.29% +0.02%
- Complexity 1043 1057 +14
============================================
Files 123 123
Lines 2606 2647 +41
Branches 301 308 +7
============================================
+ Hits 2561 2602 +41
Partials 45 45
Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
|
Closed to rerun the sdk-sync pipeline from scratch for API 2.0.0 (internal review consistency). |
Changes in the API surface
Snapshots
ae2b047c8f6f→c2a31e277345:What the agent did
tests: Confirmed: the build fails exactly as expected, due to the not-yet-implemented
dteList/dteRange/dteComparison/Operatorsymbols. As required, I stop here without touching production code.I added 10 unit tests to
OptionsResourceTest.java(4 wire cases, 1 regression, 5 validation) and 1 sync/parity wire test, plus 3 integration tests toOptionsIntegrationTest.java, exactly per the plan's names and files.gradle test --no-daemon --console=plainfails atcompileTestJavawith "cannot find symbol" fordteList,dteRange,dteComparison, andOperator, confirming no production code exists yet.implement: Build and tests pass, all changes stay within
src/main,src/test,src/integrationTest, anddocs. No commit made.Added
ExpirationFilter.dteList/dteRange/dteComparison(plus a nestedOperatorenum) as new permitted sealed-interface variants for?dte=, covering the API's list/range/comparison forms while leavingdte(int)and its error behavior untouched. Wired the new variants intoOptionsResource's query-building and updateddocs/options/chain.md. Fixed one phase-1 wire test (chainExpirationFilterDteListTranslatesToCommaSeparatedDte) that wrongly expected a literal comma; the repo's convention (seen in thecolumnstests) is to URL-decode before asserting, since commas are percent-encoded on the wire.gradle buildpasses afterspotlessApplyreformatted the new code.review fix 1: Resolved the one finding: added three wire-assertion tests (
chainExpirationFilterDteComparisonGtRendersWithOperatorPrefix,...LtRendersWithOperatorPrefix,...LteRendersWithOperatorPrefix) inOptionsResourceTest.java, each drivingchainAsyncwithExpirationFilter.dteComparisonforGT,LT, andLTEand asserting the exact percent-encoded wire form (dte=%3E30,dte=%3C45,dte=%3C%3D45). The existingGTEwire test is untouched, so all fourOperatorconstants now each have a dedicated wire-form test that would fail on a wrongwireValue. No production code changed.gradle testandgradle buildboth pass.changelog: Added changelog entry under
[Unreleased]documenting the new days-to-expiration filters (dteList,dteRange,dteComparison) and theOperatorenum for the options chain endpoint, responding to API 2.0.0.Files
CHANGELOG.mddocs/options/chain.mdsrc/integrationTest/java/com/marketdata/sdk/OptionsIntegrationTest.javasrc/main/java/com/marketdata/sdk/OptionsResource.javasrc/main/java/com/marketdata/sdk/options/ExpirationFilter.javasrc/test/java/com/marketdata/sdk/OptionsResourceTest.javaVersion
Public-surface change computed by the pipeline: minor — next version 1.1.0 (from 1.0.0).
ExpirationFilter.dteList(List<Integer>)ExpirationFilter.dteRange(int, int)ExpirationFilter.dteComparison(Operator, int)ExpirationFilter.DteListExpirationFilter.DteRangeExpirationFilter.DteComparisonExpirationFilter.OperatorExpirationFilter.Operator.GTExpirationFilter.Operator.GTEExpirationFilter.Operator.LTExpirationFilter.Operator.LTEExpirationFilter.Operator.wireValue()Test plan
14 case(s) (wire 4, regression 1, validation 5, parity 1, integration 3)
chainExpirationFilterDteSingleValueTranslatesToDteParamchainExpirationFilterDteListTranslatesToCommaSeparatedDtechainExpirationFilterDteRangeTranslatesToDashedDtechainExpirationFilterDteComparisonTranslatesToOperatorPrefixedDteexpirationFilterDteSingleValueStillReturnsDteRecordWithDaysAccessorexpirationFilterDteListRejectsEmptyListexpirationFilterDteListRejectsValueOutOfBoundsexpirationFilterDteRangeRejectsMinGreaterThanMaxexpirationFilterDteRangeRejectsValueOutOfBoundsexpirationFilterDteComparisonRejectsValueOutOfBoundschainSyncExpirationFilterDteComparisonTranslatesToOperatorPrefixedDtechainDteListNarrowsToClosestExpirationsPerValuechainDteRangeReturnsExpirationsWithinBoundschainDteComparisonReturnsExpirationsSatisfyingOperatorLive-API suite
src/integrationTest/java/com/marketdata/sdk/OptionsIntegrationTest.javaFiles of this suite changed by this pull request. The pipeline did not run the suite (it has no API token); the repository runs it with
/integrationtest.Job log
The full record of this job — every phase, test and build result, review findings and how they were resolved, and each fix round after the PR was opened — is in the job log comment.
5 coder run(s) · 5 review(s) · 113 turns · 8,424,904 tokens · US$ 7.02 · item
5c097984-5f7b-401b-abba-235a3f417767Agent runs