Skip to content
This repository was archived by the owner on Oct 2, 2026. It is now read-only.

Release v0.16.0 - #56

Merged
lchoquel merged 2 commits into
mainfrom
release/v0.16.0
Oct 1, 2026
Merged

lchoquel merged 2 commits into
mainfrom
release/v0.16.0

Conversation

@lchoquel

@lchoquel lchoquel commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Release v0.16.0

Bumps version from 0.15.0 to 0.16.0. Promotes dev → main.

Changelog

Added

  • pipe_io(), a method's inputs and outputs in one call: PipelexAPIClient.pipe_io(PipeIORequest(...)) calls POST /v1/pipe-io and returns, with no dry run, the selected pipe's pipe_io_contracts, input_form and output_form typed from mthds.protocol, beside the resolved pipe_ref, the method's default_pipe_ref, pending_signatures and is_runnable (PipeIOValidReport, or the CrateInvalidReport verdict). It takes files, method_ref or method_id like resolve, plus pipe_ref, all_pipes (every pipe instead of one) and include_files (echo the closure's .mthds files); a refused selection raises ApiResponseError.

Changed

  • prepare_inputs reads its signature from POST /v1/pipe-io, which selects the pipe (Breaking): it needs an API that serves the route and raises ApiResponseError against one that does not. The pipe is the server's choice — your pipe_ref, else a package manifest's main_pipe, else the closure's single main_pipe declaration — so a method declaring no entry pipe or several now needs pipe_ref even when it has a single pipe, and a package naming its entry pipe in its manifest alone no longer does. A pipe_ref naming a dependency package's pipe (alias->domain.pipe_code) is refused before any request, as a bare one already was. A selection the API refuses with the runner's entry-lookup error_type (pipelex-api v0.33.1 and later) raises InputPreparationError with the server's reason. The route runs no dry run, so a method whose dry run fails still prepares, but it refuses an address-based cross-package dependency that validate loaded, so a closure carrying one no longer prepares.

Closes L-261001-4135e7

🤖 Generated with Claude Code


Summary by cubic

Bumps the SDK to v0.16.0, releasing pipe_io(), a new typed client method for POST /v1/pipe-io, and moving prepare_inputs onto that route so the server selects the pipe.

Breaking change

  • prepare_inputs now needs an API serving /v1/pipe-io (pipelex-api v0.33.1+) and raises ApiResponseError against one that does not; do not merge before the hosted API serves the route.
  • The client-side default pipe chain and bundle-blueprint read are deleted: a method declaring no entry pipe or several now needs pipe_ref even when it has a single pipe.
  • A pipe_ref naming a dependency package's pipe (alias->domain.pipe_code) is refused before any request, and a selection refused with the runner's entry-lookup error_type raises InputPreparationError with the server's reason.

New features

  • pipe_io() returns a method's pipe I/O contracts, input form and output form with no dry run, typed from mthds.protocol, alongside the resolved pipe_ref, default_pipe_ref, pending_signatures and is_runnable.
  • It accepts files, method_ref or method_id like resolve, plus pipe_ref, all_pipes and include_files; a refused selection raises ApiResponseError.

Written for commit ad7e4f8. Summary will update on new commits.

Review in cubic

lchoquel and others added 2 commits October 1, 2026 22:11
Adds `pipe_io()`, the typed wrapper for `POST /v1/pipe-io`, which
returns a method's pipe I/O contracts, input form and output form with
no dry run, with the selector XOR enforced at request construction as
the rest of the crate family does. `prepare_inputs` now reads its
signature from that route and lets the server select the pipe, so the
client-side default chain and the bundle-blueprint read are deleted; a
bare `pipe_ref` is still refused before any request, and a `422` whose
`error_type` is the runner's entry-lookup error becomes an
`InputPreparationError` carrying the server's reason. It must not merge
or release before the hosted API serves the route, since a published
`prepare_inputs` on `/v1/pipe-io` fails against any API that lacks it.

Closes L-260830-f5b65e
Closes L-260921-e61f30

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01EWwzmAGtZvzvQqeC1SvzJ1

<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Adds `pipe_io()`, the typed wrapper for `POST /v1/pipe-io`, and moves
`prepare_inputs` onto that route so the server selects the pipe.

- `pipe_io()` returns a method's pipe I/O contracts, input form and
output form with no dry run, typed from `mthds.protocol`, with the
selector XOR enforced at request construction.
- `prepare_inputs` drops the client-side default chain and the
bundle-blueprint read; a bare `pipe_ref` and an alias→`domain.pipe_code`
ref naming a dependency package's pipe are each refused before any
request, and a `422` whose `error_type` is the runner's entry-lookup
error becomes an `InputPreparationError` whose message is the server's
detail alone.
- The artifacts e2e bundle now reads its declared document input (via an
empty `{% if doc %}` block) because pipelex refuses a bundle whose
template never reads a declared input.

**Migration**
- `prepare_inputs` needs a runner serving `/v1/pipe-io` (pipelex-api
v0.33.1 or later) and raises `ApiResponseError` against one that does
not. Do not merge or release before the hosted API serves the route.

<sup>Written for commit e5b69f0.
Summary will update on new commits.</sup>

<a
href="https://cubic.dev/pr/Pipelex/pipelex-sdk-python/pull/53?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>
@lchoquel

lchoquel commented Oct 1, 2026

Copy link
Copy Markdown
Member Author

/rev — round 1, profile 3, bar open on ad7e4f8. Reviewers: cubic, Codex (review mode), code-review (low). None of them reported a finding, so nothing was fixed or deferred. converged — the round-1 pass at profile 3 was clean with full coverage, at or above the required depth of 3; nothing further is warranted.

@lchoquel
lchoquel merged commit ebde127 into main Oct 1, 2026
20 checks passed
@lchoquel
lchoquel deleted the release/v0.16.0 branch October 1, 2026 20:45
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 1, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant