Repository navigation
feat: catch up to Tango API 5.11.0 (Federal Register, count_type and meta on Page, new filters) - #10
Merged
Merged
Conversation
Page gains count_type, read from each response's own X-Results-CountType header, and meta, the response's meta object passed through (agency-filter diagnostics including matched_by, upgrade hints). Page is now #[non_exhaustive]. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
list_federal_register_documents / iterate_federal_register_documents and get_federal_register_document (by uuid), with ListFederalRegisterDocumentsOptions naming all seventeen of the API's filters plus ordering, GetFederalRegisterDocumentOptions, and SHAPE_FEDERAL_REGISTER_MINIMAL / _COMPREHENSIVE (Tango API 5.3.0). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cycle_name on SBIR topics agency takes a Tango agency name, abbreviation, code or organization key and matches the whole organization subtree (Tango API 5.3.0). cycle_name filters SBIR topics by DSIP cycle (Tango API 5.3.1). The IT Dashboard tier docs now match the API: agency_name, agency and previous_uii are available at every plan. The SBIR topic agency docs now say the filter is organization-resolved. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… attachment-count and extraction_status leaves ListOpportunitiesOptions gains awarded (Option<bool>) and awardee_uei (Tango API 5.5.0). get_opportunity / get_notice document the award leaves and awards(...) expand, the file and link counts (Tango API 5.9.0) and attachments(extraction_status) (Tango API 5.11.0); get_vehicle documents opportunity(meta(files_count,links_count)). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ations_by_fiscal_year decoding ListContractsOptions and ListIDVsOptions gain commercial_item_acquisition_procedures (Tango API 5.10.0); the API does not offer it on OTAs or OT IDVs. models::FiscalYearObligation decodes the obligations_by_fiscal_year(fiscal_year,obligated) expand (Tango API 5.11.0), which is always null on IDVs and OT IDVs. The uei / recipient_uei docs on the contract, IDV, OTA and OT IDV lists say several UEIs joined by | match any of them (Tango API 5.11.0). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…izationsOptions does Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cle orders Filters tango-python already exposes and the API accepts: ListPscOptions::has_awards, ListVehicleAwardeesOptions::search and ListVehicleOrdersOptions::ordering (award_date, obligated or total_contract_value). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tries API reference sections for Federal Register, the new filters and shape leaves, count_type and meta on Page, the corrected IT Dashboard tiers and SBIR agency semantics; the federal_register and ebuy_request alert query types in WEBHOOKS.md; the two new shape constants in SHAPES.md; README pagination notes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…etail
A structured error body such as a plan gate's `{"detail": {"error": "...", "code": "tier_required"}}` left `Error::Api`'s message at the bare status line.
The reason is now read from the envelope keys `error`, `message` and `detail`, then the same keys inside a `detail` object, matching the Python SDK; the parsed body stays on `response`, and non-JSON bodies keep the old message.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
vdavez
force-pushed
the
feat/api-5.11.0-catchup
branch
from
October 19, 2026 19:57
d747141 to
2c2fa45
Compare
vdavez
marked this pull request as ready for review
October 19, 2026 19:57
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.
Summary
Brings
makegov-tangoup to Tango API 5.11.0, matching tango-python 1.18.1.Stacked on #7, #8 and #9. This branch carries those three as merge commits so it builds and tests against them; once they land on
mainit gets rebased ontomainand only the commits below remain.Breaking (pre-1.0)
Page<T>is now#[non_exhaustive]and gains two fields. Reading a page is unaffected; building one with a struct literal, or destructuring it without.., no longer compiles.Added
Page::count_type:"exact"or"approximate", from each list response's ownX-Results-CountTypeheader.Page::meta: the response'smetaobject, which the SDK dropped before, so agency-filter diagnostics (includingmatched_by, Tango API 5.9.0) and upgrade hints are now reachable.list_federal_register_documents/iterate_federal_register_documents/get_federal_register_document(byuuid), all seventeen filters, andSHAPE_FEDERAL_REGISTER_MINIMAL/_COMPREHENSIVE.agencyon budget accounts, exclusions and IT Dashboard (Tango API 5.3.0);cycle_nameon SBIR topics (Tango API 5.3.1).awarded/awardee_ueion opportunities (Tango API 5.5.0).commercial_item_acquisition_procedureson contracts and IDVs only (Tango API 5.10.0).models::FiscalYearObligationfor theobligations_by_fiscal_year(fiscal_year,obligated)expand (Tango API 5.11.0).has_awardson PSC,searchon vehicle awardees,orderingon vehicle orders.awards(...), file and link counts,attachments(extraction_status), theorganization(...)expand on budget, exclusions and SBIR, and thefederal_register/ebuy_requestalert query types.Fixed
agency_name,agencyandprevious_uiiare available at every plan.agencyis documented as organization-resolved.detail(a plan gate's structured 403), matching tango-python 1.18.1. The reason is read fromerror,messageanddetail, then the same keys inside adetailobject; the parsed body stays onresponse, and a non-JSON body keeps the bare status message.Testing
cargo fmt --all -- --checkon stable and 1.80.cargo clippy --workspace --all-features -- -D warningson stable and 1.80, plus--all-targetson stable.cargo test --workspace --all-featureson stable and 1.80, and--no-default-features.count_typeandmetaon concurrent pages, the opportunity award and attachment leaves, and the obligations decode.detail), a JSON body without one, and a non-JSON body.Not included
joiner(the flat-key separator tango-python exposes on a few lists) has no field here; it only matters withflat = trueand a non-default separator.extra, as before; the endpoint rejects unknown names with a 400, so a typo still fails loudly.🤖 Generated with Claude Code