Skip to content

fix(contract): align reviewed beta API provenance - #39

Closed
thestephenromano wants to merge 2 commits into
mainfrom
fix/beta-contract-pin
Closed

thestephenromano wants to merge 2 commits into
mainfrom
fix/beta-contract-pin

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.

Change

Align the SDK's offline contract with the API's reviewed beta baseline: OpenAPI info.version changes from 3.0.0 to 0.1.0. Pin the final source of API MR !183, commit d2eb8d4d05d9c84dc8e9ac4d7b3016d1133d8d4f, and SHA-256 d9a746af609cba68d768c4b743061fd3e91cbe04cd4242c954e48c01f286031d in contract provenance and all five native fixture headers. Document the producer MR as the immutable source handoff.

The contract diff changes only its version label. All fixture requests, numerical results, diagnostics, ordering and response metadata are retained. SDK runtime code, package-release versions, retry behavior and commercial CU semantics are unchanged.

Related: #2.

Merge order

Merge after API MR !183 lands successfully. Its final source has been reviewed and verified locally; the API's required CI and squash merge remain the upstream gate. This SDK PR stays draft until that gate completes.

Validation

  • Ruff lint and formatting, mypy, notebook generation/clean-output checks and git diff --check pass.
  • Full SDK suite against the controlled native API: 493 passed, including all 17 native integration tests.
  • All 16 cases in the five native fixture files exactly match complete native JSON after normalizing only request IDs. This includes engine identity, solver diagnostics, ordered errors/results, internal units and absence of commercial CU in open admission.
  • The API was built with locked dependencies from the exact pinned source. Its served OpenAPI matches the SDK artifact byte-for-byte and by SHA-256.
  • python scripts/check_package.py passed: sdist/wheel, isolated installation, license metadata and optional pandas conversions.
  • GitHub CI covers Python 3.11, Python 3.14 and Docker notebook execution.

Native calls used only http://127.0.0.1:18083 with explicit open admission. No production requests, package publication or API deployment were performed.

Checklist

  • Conventional commit title; focused feature branch.
  • Local checks pass and runnable documentation matches behavior.
  • No credentials, private data, build outputs or engine source added.
  • Immutable source, contract digest and native fixture provenance verified.
  • API MR !183 merged before SDK merge.
  • Release/deployment boundaries are preserved.

@thestephenromano thestephenromano changed the title fix(contract): pin beta API contract candidate fix(contract): align reviewed beta API provenance Oct 26, 2026
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