Repository navigation
feat(capture): pick the long-build specs the server has not built - #28
Merged
Merged
Conversation
jm-rivera
marked this pull request as ready for review
October 26, 2026 09:09
mint-async-build and operation-resume need a 202, which only an unbuilt spec gives, and each live record builds its two specs for good. The tool named their start years as constants, so every record needed new years by hand. Context.async_spec now walks start years 1960 to 2000 for the DAC and OECD donor questions and takes the first spec that is one definite part, sits just above the sync budget, repeats no earlier pick, and has no version on the versions route. It refuses when the range is used up. The party-totals scenarios narrow a built DAC spec and need no unbuilt one, so they keep their own question, PARTY_TOTALS_FLOW. Co-authored-by: Claude <noreply@anthropic.com>
jm-rivera
force-pushed
the
feat/unbuilt-build-years
branch
from
October 26, 2026 12:58
e5fa192 to
bd9a9ab
Compare
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.
tools/capture_client_contract.pychooses the two long-build specs itself.mint-async-buildandoperation-resumeneed a 202, which only a spec the server has not built gives, and each live record builds both specs for good. The constantsASYNC(1964) andASYNC_RESUMED(1965) therefore had to move by hand before every record.LONG_BUILDis one question over the donor group and start year.Context.async_spec(donors)walksLONG_BUILD_YEARS, 1960 to 2000, without recording those requests. It skips a year whose answer is not one definite part, whose row estimate falls outside 100,000 to 200,000, or whosespec_idan earlier year or the other donor group already gave (a start year before the source's first year clips to the same spec). It takes the first spec thatGET /datasets/{id}/versionsreports with no version, and raisesShapeErrornaming the range when none is left. The probe calls_newest, sincenewest_versionreads a refused request as no version. The mint uses the DAC donors and the resumed operation the OECD donors, as before. The README paragraph states the rule in place of the years.The recorded scenarios keep 1964 and 1965, which stay valid because the validator replays each recorded question. The next live record takes new years and rewrites the 12 scenarios derived from the two long builds.
Testing:
tools/testspasses 533 tests, including two new ones that drive the walk with stubbed search and versions answers (skips an out-of-band year, a built spec and a repeatedspec_id, caches each pick, refuses an exhausted range).python/client-contractpasses 93. Ruff is clean on both files. A read-only run of the picking against dev, limited to search and versions requests, chose 1960 for both groups (110,084 and 114,442 rows, no version); the probe on the built 1964 DAC spec returned its version as a control.Co-authored-by: Claude noreply@anthropic.com