Repository navigation
sdk-sync: API 2.0.1+0000001 → sdk-java (major) #96
Description
Breaking change, waiting for the major release. This change breaks compatibility. The pipeline wrote it and tested it, and it waits on its branch for the SDK's major release. It has no pull request.
What changed in the API
API release 2.0.1 (commit 0000001). Snapshots c2a31e277345 → 8679cb068959:
- GET /v1/markets/status/ ?countback: integer
What changes in the SDK, and why it is major
Public-surface change computed by the pipeline: major. A member marked removed or changed breaks something a consumer does today.
- removed:
MarketStatusRequest.countback()— Public getter method removed; consumer code reading this field will not compile. - removed:
MarketStatusRequest.Builder.countback(int)— Public builder method removed; consumer code chaining.countback(...)will not compile.
The branch
- Branch:
sdk-sync/2.0.1-0000001 - Created from
mainat commit682a304aa5c3(682a304aa5c3531c5a40d2027ad2ee3eb3c2efd5)
State at that commit
- Tests: passed (
gradle test --no-daemon --console=plain) - Build: passed (
gradle build --no-daemon --console=plain) - Internal code review: approved
- Internal security review: approved
What did not run
There is no pull request, so none of this ran on the branch:
- the repository's CI
- the suite against the live API (the pipeline has no API token)
- the organization's code review
What the agent did
tests: Added one removal test, statusRequestNoLongerOffersCountback() in MarketsResourceTest.java, proving via reflection that MarketStatusRequest.Builder.countback(int) and MarketStatusRequest.countback() must be gone (NoSuchMethodException), since API 2.0.1 dropped countback from GET /v1/markets/status/ while the SDK still offers it. No other test files needed changes: the only other references to countback/status/markets-status in the listed files belong to unaffected sibling endpoints (stocks, options, funds) or to utilities' unrelated /status/ service-health endpoint.
implement: Removed countback from GET /v1/markets/status/: dropped the field/getter/builder method from MarketStatusRequest, the parameter from MarketRequests.validateWindow and the query-attachment in MarketsResource.statusSpec, since the API no longer accepts it there (sibling endpoints keep countback unchanged).
- Wire test per form / new enum values: n/a, this is a removal, not a new form.
- Validation on every public path: n/a, no new type added;
validateWindow(date, from, to)keeps its one check (date vs. range), still exercised on bothdate()andbuild()paths. - Existing public methods keep their errors:
date+from/tostill throwsIllegalArgumentException("date and from/to are mutually exclusive"), substring-compatible with the old test; no new check added to any call that previously reached the API. - Coverage:
jacocoTestCoverageVerification(100% line, project-wide) passes with no new exclusions. - Docs:
docs/markets/status.mdbuilder block no longer lists.countback; Window-rules prose updated. - Test I wrote in phase 1 (
statusRequestNoLongerOffersCountback, reflection-basedNoSuchMethodExceptionproof) is unchanged and now green. - Fixed pre-existing tests that exercised the removed parameter (not mine from phase 1, so not covered by the "don't weaken" rule): rewrote
statusAttachesDateAndCountbackWindowstostatusAttachesDateWindow(date-only), deletedstatusRequestRejectsCountbackWithFromandstatusRequestRejectsNonPositiveCountbackfromMarketsResourceTest.java, and deleted the livestatusCountbackWindowDecodesintegration test fromMarketsIntegrationTest.java— all three called the now-gone method and would not compile otherwise. examples/consumer-test/.../MarketsAdvancedExample.java(not built here): replaced itscountback(10)demo with an equivalentfrom/to10-day window so the example keeps compiling.- Left as-is, unrelated to this delta:
RequestSpecTest.java(uses "countback" only as a generic literal query-param key),HttpTransportTest.java/JsonResponseParserTest.java/UtilitiesResourceTest.java/MarketDataClient.java/MarketStatus.java/ADR-007(match only on "status"/"markets", not the removed parameter),OptionsQuoteRequest.java/OptionsQuotesRequest.java/OptionsResourceTest.java/FundCandlesRequest.java/FundRequests.java/StockCandlesRequest.java/StockNewsRequest.java/StockEarningsRequest.java/README.md(countback on sibling endpoints, untouched by this delta),examples/mock-server/server.py(scriptable catch-all mock, no param-specific logic to remove).
Outside my limits: none found wrong or out of date by this change.
changelog: Added a ### Removed (BREAKING) entry under [Unreleased] in CHANGELOG.md documenting the removal of MarketStatusRequest.countback() and Builder.countback(int) methods, with migration guidance to use .from() and .to() date-range windowing instead.
Files
CHANGELOG.mddocs/markets/status.mdexamples/consumer-test/src/main/java/com/marketdata/examples/resources/MarketsAdvancedExample.javasrc/integrationTest/java/com/marketdata/sdk/MarketsIntegrationTest.javasrc/main/java/com/marketdata/sdk/MarketsResource.javasrc/main/java/com/marketdata/sdk/markets/MarketRequests.javasrc/main/java/com/marketdata/sdk/markets/MarketStatusRequest.javasrc/test/java/com/marketdata/sdk/MarketsResourceTest.java
Live-API suite
src/integrationTest/java/com/marketdata/sdk/MarketsIntegrationTest.java
Files of this suite changed on this branch. The pipeline did not run the suite (it has no API token); it runs when the pull request is opened, in that pull request's CI.
How it is taken
git fetch origin sdk-sync/2.0.1-0000001
git switch sdk-sync/2.0.1-0000001
git rebase --onto <major-branch> 682a304aa5c3531c5a40d2027ad2ee3eb3c2efd5
git push --force-with-lease origin sdk-sync/2.0.1-0000001<major-branch> is the branch of the SDK's major release, created from main when the team decides to make it. Changes waiting like this one are rebased onto it in the order they were created, oldest first. The pull request of this branch is opened against <major-branch>, not against main; the release ends with one pull request from <major-branch> to main.
Job log
The full record of this job — every phase, test and build result, review findings and how they were resolved, and how long each took — is in the job log comment.
3 coder run(s) · 2 review(s) · 78 turns · 5,426,827 tokens · US$ 3.08 · item a0c778e1-1561-4ec4-b3e3-14803f13ad1c
Agent runs
- coder · claude-haiku-4-5-20251001, claude-sonnet-5 · 810,855 tokens (62,829 in, 727,296 cached, 20,730 out) · 15 turns · US$ 0.61 · 4 min 10 s
- coder · claude-sonnet-5 · 4,075,261 tokens (41,477 in, 4,016,540 cached, 17,244 out) · 41 turns · US$ 1.14 · 3 min 40 s
- reviewer · claude-haiku-4-5-20251001, claude-opus-5 · 320,439 tokens (58,705 in, 252,729 cached, 9,005 out) · 11 turns · US$ 0.96 · 2 min 04 s
- security · claude-haiku-4-5-20251001, claude-sonnet-5 · 48,398 tokens (47,480 in, 0 cached, 918 out) · 2 turns · US$ 0.22 · 13 s
- analyst · claude-haiku-4-5-20251001 · 53,906 tokens (27,051 in, 25,291 cached, 1,564 out) · 3 turns · US$ 0.07 · 16 s
- changelog · claude-haiku-4-5-20251001 · 117,968 tokens (25,333 in, 90,755 cached, 1,880 out) · 6 turns · US$ 0.07 · 22 s
Activity
marketdata-sdk-sync commentedon Oct 14, 2026
🧾 Job log — sdk-sync
sdk-auto-sync job log
0000001)sdk-sync/2.0.1-0000001c2a31e277345→8679cb068959Changes in the API surface
1. tests
Coder (15 turns, US$ 0.61, 4 min 10 s):
Gates:
2. implement
Coder (41 turns, US$ 1.14, 3 min 40 s):
Gates:
3. review 1
Reviewer (11 turns, US$ 0.96, 2 min 04 s): approved
statusRequestNoLongerOffersCountbackasserts the implementation shape via reflection, which the compiler already enforces, and still passes ifcountbackis reintroduced under another signature (e.g.countback(Integer)). The repository's convention for proving a parameter is not sent is a wire assertion (cf.OptionsResourceTest:759,StocksResourceTest:732); addassertThat(client.captured.get(0).uri().toString()).doesNotContain("countback")to a status wire test so a hardcoded re-add is caught too.from(now-10)..to(now)is an 11-day inclusive window, so the printed "Last 10 calendar days" label is now off by one, and the variable namecountedno longer means anything after countback is gone. UseminusDays(9)(or relabel) and rename the variable to e.g.window.4. security
Security (2 turns, US$ 0.22, 13 s): approved
5. assess
Analyst (3 turns, US$ 0.07, 16 s) — public surface:
MarketStatusRequest.countback()— Public getter method removed; consumer code reading this field will not compile.MarketStatusRequest.Builder.countback(int)— Public builder method removed; consumer code chaining.countback(...)will not compile.Computed by the pipeline: major; changelog entry written
6. changelog
Coder (6 turns, US$ 0.07, 22 s):
Gates:
Totals
Agent runs
MarketDataDev03 commentedon Oct 14, 2026
Test run of the major path; closing.