Skip to content

ENG-2597: Promote stlc-generated python SDK (Stainless cutover)#113

Merged
aburkard merged 1 commit into
mainfrom
stage2/py-promote-preview
Jun 26, 2026
Merged

ENG-2597: Promote stlc-generated python SDK (Stainless cutover)#113
aburkard merged 1 commit into
mainfrom
stage2/py-promote-preview

Conversation

@aburkard

@aburkard aburkard commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

What

Promote the stlc-generated python SDK from python-sdk-staging onto main, replacing the Stainless-hosted generation pipeline. This is the python analogue of the proven go cutover (hyperspell-go #4/#5/#6).

Diff (audited clean — mirrors go)

  • API (identical OAS snapshot to go's latest sync): add Conversation.title; expand connections.revoke docstring (202 Accepted + background Temporal purge, idempotent per app/user/provider); regenerated test fixtures.
  • De-Stainless'd: README MCP badges now use npx @hyperspell/hyperspell-mcp instead of the Stainless-hosted hyperspell.stlmcp.com; .stats.yml dropped the Stainless spec URL + hashes.
  • Version: pinned to the manifest's 0.38.0 (staging ships a 0.0.1 placeholder — stamped back to avoid a version regression).
  • Preserved: CHANGELOG.md, .release-please-manifest.json, release-please-config.json, .github/ untouched. No deletions.

Residual stainless strings remain only in dev/CI tooling (pkg.stainless.com preview-install CDN, $STAINLESS_OPENAPI_SPEC_URL mock-server env fallback) — gen-controlled, not customer-facing, same as go.

⚠️ HOLD — do not merge yet

Sequencing (python publishes to PyPI, so higher-stakes than go — order matters to avoid a double-publish):

  1. Let go's release PR (hyperspell-go chore(internal): codegen related update #6) merge + tag first — validates the release-please→tag path end-to-end.
  2. Close the stale Stainless release PR release: 0.39.0 #112 ("release: 0.39.0") first — so there is never a window where both it and our release PR are open and could each publish to PyPI.
  3. Merge this promote PR (content sync).
  4. Add .github/workflows/release-please.yml (separate PR, mirrors hyperspell-go feat(api): api update #5) using PRODUCTION_REPO_TOKEN.
  5. Our release-please opens a fresh release: x.y.z PR → merging that is the single, gated PyPI publish.

🤖 Generated with Claude Code

Sync the stlc-generated SDK from python-sdk-staging onto main, replacing the
Stainless-hosted generation pipeline.

API changes (from the OAS, identical to the go SDK's latest sync):
- add Conversation.title (optional)
- expand connections.revoke docs (202 Accepted + background Temporal purge,
  idempotent per app/user/provider)
- regenerated test fixture values

De-Stainless'ing:
- README MCP install badges switched from the Stainless-hosted endpoint
  (hyperspell.stlmcp.com) to `npx @hyperspell/hyperspell-mcp` (the published
  npm package)
- .stats.yml dropped the Stainless spec URL + hashes

Mechanics:
- release-please files (CHANGELOG, .release-please-manifest.json,
  release-please-config.json, .github/) preserved
- version pinned to the manifest's 0.38.0 (staging ships a 0.0.1 placeholder)
- staging repo references rewritten to python-sdk

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@linear-code

linear-code Bot commented Jun 26, 2026

Copy link
Copy Markdown

ENG-2597

@firetiger-agent

firetiger-agent Bot commented Jun 26, 2026

Copy link
Copy Markdown

Firetiger has created a monitoring plan for this PR.

View monitor

@entelligence-ai-pr-reviews

Copy link
Copy Markdown

Confidence Score: 5/5 - Safe to Merge

Safe to merge — this PR promotes a Stainless-generated Python SDK cutover (ENG-2597) and the automated review found zero issues across all 8 changed files. The PR achieves a clean SDK promotion with no logic bugs, security concerns, or correctness issues identified. All changed files were fully reviewed and passed without any substantive feedback.

Key Findings:

  • All 8 changed files were reviewed and no issues of any severity were identified — neither logic errors, missing validations, nor style nits.
  • The PR scope is a well-defined SDK promotion (stlc-generated Python SDK cutover), which is a common, low-risk operation when the generated code is clean and passes automated review.
  • No pre-existing unresolved comments were carried into this PR, meaning the codebase context is clean going into this merge.
  • Zero critical, significant, or medium-severity issues were flagged by heuristic analysis, confirming the generated SDK code is structurally sound.

@aburkard aburkard merged commit 465e04a into main Jun 26, 2026
8 checks passed
aburkard added a commit that referenced this pull request Jun 26, 2026
#114)

Adds the in-house release-please workflow that opens/maintains the release PR and
tags on merge, using PRODUCTION_REPO_TOKEN. Replaces the release automation that
Stainless ran externally via the stainless-app GitHub App (being retired). The
SDK content was already promoted from staging in #113.

Co-authored-by: stlc-bot <stlc-bot@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
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