Release v0.13.0 - #48
Merged
Merged
Conversation
…o docs/workspace (#46) The workspace release play moved from the meta-repo's docs/ root to docs/workspace/, so the /release skill's link to it no longer resolved. This rewrites the displayed path and the relative link in .claude/skills/release/SKILL.md to docs/workspace/releasing.md; the play itself is unchanged. Closes L-260914-d5ba1e 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Fixes the `/release` skill's link to the workspace release play, which moved from the meta-repo's `docs/` root to `docs/workspace/`. Updates the displayed path and relative link in `.claude/skills/release/SKILL.md` to `docs/workspace/releasing.md`; the play itself is unchanged. Closes L-260914-d5ba1e. <sup>Written for commit b743f23. Summary will update on new commits.</sup> <a href="https://cubic.dev/pr/Pipelex/pipelex-sdk-python/pull/46?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
The Python SDK no longer exposes the Pipelex Gateway API key: the two client methods, their models, their tests and their docs entries are gone. The routes behind them are being deleted from the hosted plane, and a user now brings their own provider keys or uses a Pipelex API key against the hosted API. The hosted HTTP gateway timeout wording is a different thing and is untouched. Closes L-260918-4f86fd 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
A failed run's reason now reaches a caller of pipelex-sdk. RunErrorReport (moved to pipelex_sdk.error_models) types every field of the runner's stored report, read leniently so a report written by another runner version never fails the read carrying it, and it is the one type on RunRead.error, PipelineRun.error, RunResultFailed.error and the new RunFailedError.error; the status of a failed run comes from the results read's run_status member instead of a regular expression over the detail sentence. ApiResponseError now carries the problem document's request id (body or X-Request-ID header), type_uri, title, error_domain, error_category, retryable, user_action, errors[] and the decoded document whole, and the README points consumers at type_uri and error_domain as the branch fields. Closes L-260925-f16153 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic A failed run's reason now reaches a caller of pipelex-sdk. The runner's stored error report is carried whole and typed as `RunErrorReport` (moved to `pipelex_sdk.error_models`) on `RunRead.error`, `PipelineRun.error`, `RunResultFailed.error` and the new `RunFailedError.error`, read leniently so a report written by another runner version never fails the read carrying it. `ApiResponseError` now carries the problem document's `request_id`, `type_uri`, `title`, `error_domain`, `error_category`, `retryable`, `user_action`, `errors[]` and the decoded document whole, and is raised by the product routes only. **Breaking changes** - Import `RunErrorReport` from `pipelex_sdk.error_models`; `pipelex_sdk.product_models` no longer exports it. - `RunRead.error` is the typed report, no longer the raw dict on `model_extra`. - A failed run's status comes from the results read's `run_status` member; a `409` without a known one reads as `FAILED` (was: parsed from the `detail` sentence). **Error branching** - Branch on `type_uri` and, on runner-rendered problems, `error_domain`; `code` and `error_type` remain each surface's native, finer codes. <sup>Written for commit ffcb5c6. Summary will update on new commits.</sup> <a href="https://cubic.dev/pr/Pipelex/pipelex-sdk-python/pull/47?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The exact mthds pin moves from 0.15.0 to 0.16.0, the version pipelex pins exactly, so pipelex-sdk and pipelex can be installed together again. mthds 0.16.0 adds its own User-Agent builder to MthdsAPIClient; this SDK keeps its own builder and AppInfo for now, so one narrow type ignore covers the app_info attribute the base now declares, and the docs say the base's seam is not adopted yet. Closes L-260924-ce6e2d 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated description by cubic. --> --- ## Summary by cubic Bumps the exact `mthds` pin from 0.15.0 to 0.16.0, the version `pipelex` pins, so `pipelex-sdk` and `pipelex` can be installed together again. `mthds` 0.16.0 adds a User-Agent builder to `MthdsAPIClient`, but `PipelexAPIClient` keeps its own builder and `AppInfo` for now; one narrow type ignore covers the base's new `app_info` attribute, and the docs note the seam is not adopted yet. <sup>Written for commit 6b856f6. Summary will update on new commits.</sup> <a href="https://cubic.dev/pr/Pipelex/pipelex-sdk-python/pull/49?utm_source=github" target="_blank" rel="noopener noreferrer" data-no-image-dialog="true"><picture><source media="(prefers-color-scheme: dark)" srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source media="(prefers-color-scheme: light)" srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img alt="Review in cubic" src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a> <!-- End of auto-generated description by cubic. --> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Brings the mthds==0.16.0 pin into the release, so pipelex-sdk 0.13.0 can be installed beside pipelex. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Release v0.13.0
Bumps version from
0.12.0to0.13.0. Promotesdev→main.Changelog
Added
RunFailedErrorandRunResultFailed:RunFailedError.errorandRunResultFailed.errorcarry the run's stored error report typed asRunErrorReport, sowait_for_result,start_and_waitanddownload_artifactsnow raise with the reason the runner recorded, not only the status. The message of the error is the platform'sdetail, which names the status and then the report's message.Nonemeans the run ended with no report, such as a cancelled run. Seedocs/run-results.md.ApiResponseErrorcarries the problem document's members:request_id(read from the body, or from theX-Request-IDheader when the body has none),type_uri(the problem'stype),title,error_domain,error_category,retryable,user_action,errors(the platform's field-level list, typed asFieldError) andproblem, the decoded document whole, for any member the SDK does not name. Branch ontype_uri, and onerror_domainwhere a runner-rendered problem carries it, as the README now says;codeanderror_typeremain each surface's native code.Changed
RunErrorReportcarries every field of the runner's report and moves topipelex_sdk.error_models(Breaking): import it frompipelex_sdk.error_modelsinstead ofpipelex_sdk.product_models. Besidemessageanderror_typeit now declarestitle,type_uri,error_domain,error_category,retryable,user_action,model,provider,provider_metadata,caller_facing_message,validation_errorsandmigration, every one optional, the model open to fields the runner adds, and each field read leniently — a value that does not fit its type reads asNonerather than failing the status read, the run list or the results read that carries the report — soPipelineRun.errorin the run lists reads the whole report too.RunRead.erroris the typed report, no longer a raw dict (Breaking):erroris now declared onRunPublic, so the status read's report is aRunErrorReportrather than the dict that rodemodel_extra; readrun.error.messagewhere code readrun.error["message"]orrun.model_extra["error"].run_statusmember (Breaking):get_run_resultno longer parses the status out of the409'sdetailsentence; it reads the problem document'srun_statusmember, and a409without a status this SDK knows reads asFAILED.mthds0.16.0 (Breaking): the exact pin moves from 0.15.0 to the versionpipelexpins exactly, sopipelex-sdkandpipelexcan be installed together again. Nothing in this client's own surface changes:PipelexAPIClientkeeps building itsUser-Agentwithpipelex_sdk.user_agentand its ownAppInfo, and does not yet use the builder thatmthds0.16.0 adds toMthdsAPIClient.Removed
create_gateway_api_keyandget_gateway_api_key, with theGatewayApiKeyandGatewayApiKeyStatusmodels, are removed — thePOSTandGET /v1/gateway-api-keyroutes behind them no longer exist on the hosted API. A caller brings its own provider keys, or runs against the hosted API with a Pipelex API key (list_pipelex_api_keysand friends, which are untouched). This has nothing to do with the hosted HTTP gateway's synchronous-execute ceiling, which is unchanged.Closes L-260927-0a410e
🤖 Generated with Claude Code