Skip to content

feat(client)!: enforce the beta 100-contract batch ceiling - #40

Closed
thestephenromano wants to merge 1 commit into
fix/beta-contract-pinfrom
feature/beta-limits
Closed

thestephenromano wants to merge 1 commit into
fix/beta-contract-pinfrom
feature/beta-limits

Conversation

@thestephenromano

@thestephenromano thestephenromano commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Superseded by #41, which adopts deployed API v0.5.0 and includes this contract/batch-limit change with current native fixtures and full validation. This branch is retained for history.

Restrict all four option batch models and explicit workflow chunk sizes to 100 contracts, matching the beta API ceiling. A 101-item batch fails local validation before any request; ordinary batch calls are not silently split. Keep the 30-second client timeout and document the API's ten-second compute deadline and post-start timeout charges.

Pin the exact OpenAPI bytes from API commit d15a738fd13d79671d65b14358795908a9949f1f. Preserve the fixtures' original source identity and numerical values, and replay them against the candidate. No engine, numerical result, CU price or release version changes.

Validation: 493 tests passed with the pinned native API running on loopback, including controlled integration tests. Ruff lint/format, mypy, notebook generation checks, and isolated wheel/sdist/package-extra checks passed. Native HTTP accepted 100 contracts and refused 101; served API and SDK schema bytes matched exactly.

Stacked on #39; paired with API !184. Keep draft until the producer contract is reviewed and the API/docs/SDK rollout is coordinated. No package publication or production deployment is performed here.

thestephenromano added a commit that referenced this pull request Nov 4, 2026
Align the Python SDK with deployed API v0.5.0. Existing SDK 0.1.x lacks
discovery and standard-five operations, assumes all Greeks are always
available, and permits obsolete 1,024-item batches. This update exposes
the current contract and preserves server capability errors and
unavailable-quantity evidence.

- Both clients cover all 14 numerical/discovery/cost operations. Add
unauthenticated `pricing_models()`, standard-five single/batch methods
and explicit chunk workflows; support quoting and `max_cu` on all 11
execution methods.
- Pin API commit `2284d802b5ac0b37b43ee269bbf4bfeec3777776`, schema
SHA-256
`e206327e13aee32c02dbfa22e1d8e8a80ea2d549083971a1cc87aa2b67f401e7` (beta
wire version remains 0.1.0).
- Enforce the 100-item wire ceiling, forward current canonical
selectors/aliases, preserve optional Greek values and typed reasons, and
retain gaps in pandas output. Protected calls reject missing credentials
before transport; public discovery never sends a key.
- Update examples, guides and six notebooks. American
Greeks/analytics/batches select BS1993 explicitly. No client model
substitutions, numerical fallbacks, policy-rate arithmetic, or automatic
retries.
- Supersedes the contract-pin and batch-limit work in #39 and #40.
Release Please retains ownership of package versions and publication.

Validation at `ec86a6e`: Ruff lint/format and mypy passed; isolated
sdist/wheel installation and all five pandas batch conversions passed;
all 18 native integration checks passed against an optimized locked
build of API v0.5.0, including a 100-contract standard-five batch,
cash-dividend IV and capability errors. Docker startup/authentication,
all six notebooks, persistent edits and missing-notebook seeding passed.
The clean installed-wheel audit passed **all 555 tests**, including all
18 native integration tests, in a fresh Python 3.14.10 environment with
no source-tree imports. Candidate wheel SHA-256:
`9613ffa514ccf4ab3ccc8c9980cbdfff1759aea2ff4b9313101e76ea2d1d0452`
(development candidate retains version 0.1.1; Release Please owns the
next version). Native schema identity and fixture provenance are
checked. No production credentials or customer data are used.

Compatibility notes and reproducible commands: [API v0.5.0
adoption](https://github.com/MorphIQ-Labs/morphiq-sdk-python/blob/feature/cost-utilities/docs/API_V050_ADOPTION.md).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant