Release v0.23.0 - #73
Merged
Merged
Conversation
The skill now names the workspace release play and declares only what the play reads: the Docker Hub image, the GitHub Release and the docs site the merge publishes through auto-release.yml's dispatch chain; the pyproject.toml version with its uv.lock and the OpenAPI artifact that the bump always invalidates; the gates, including the post-bump openapi-export and the unconditional strict docs build a release always trips; the named commit list; the workflows that gate a release pull request; and the particulars, from the refused pre-release form to the exact pipelex pin and the merge-commit back-merge. Dropped the procedure the play now owns for every repo: the git status pre-flight that offered to fold uncommitted changes or stash them, the release branch created in place from the current HEAD, the numbered restatement of the changelog, bump, lock, commit and pull request steps, and the pull request body template. Claude-Session: https://claude.ai/code/session_016F72qvy4QBZHe7XX24QmcT Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
* chore: pin pipelex 0.57.0 and carry a run's I/O artifacts on /execute Moves this repo's pipelex pin from 0.56.0 to 0.57.0 and lands the consumer half of the change that release enables. The pin is breaking, in a way the OpenAPI diff does not show: pipelex 0.57.0 moves to mthds 0.14.0, whose MTHDS_STANDARD_VERSION was cut from 1.0.0 to 2.0.0, so every crate /v1/resolve emits and every crate /v1/build/runner normalizes is now stamped mthds_version "2.0.0". Crate fingerprints are unaffected, since mthds_version is excluded from the hashed payload by design. The MTHDS Protocol version is unchanged at 0.6.0, so GET /v1/version moves only its runtime_version. The .pipelex/ config schema did not move. _pipe_output_from_run_output now rehydrates pipe_io_artifacts_dump and pipe_io_artifacts_error inside the same strict=False model_validate that already reverses graph_spec_dump, so the synchronous /execute response carries the run's I/O artifacts beside its execution graph. PipeOutputWire needed no edit: it subclasses PipeOutput, so both fields arrived by inheritance and were already in the committed OpenAPI artifact. docs/pipe-run.md documents the new pair and closes a pre-existing gap by documenting graph_spec and graph_assembly_error, which the response reference had never listed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KXNdmYQgikcZSza6YHrW6f * docs: correct what actually gates the I/O artifacts, and pin the error slot Round-1 review fixes on top of the pipelex 0.57.0 bump. Almost all of this is prose from the previous commit that turned out to be factually wrong. The null condition was the headline defect: the reference and the changelog both said `pipe_io_artifacts` is null when the run assembled no graph. The real gate is `describe_pipe_io and graph_spec is not None`, where `describe_pipe_io` is `is_generate_graph and graphs_inclusion.graphspec_json`, so a run with `graphspec_json = false` returns a non-null graph with null artifacts and a null error — a state the docs described as impossible. Both settings are named now, along with the fact that `runtime.tracing.is_enabled` does not gate assembly at all: it selects a trace-emission backend, and the in-memory tracer accumulates regardless. Also corrected: the artifacts cover the run library's *own* pipes, so a graph node contributed by a dependency package has no entry; the changelog's claim that a client which ignored `graph_spec` sees no difference, which is wrong because `PipeOutputWire` publishes `additionalProperties: false`; and the omission of the `codegen` engine_version stamp, which moves to 0.57.0 and invalidates any `codegen.lock` committed against 0.56.0. `docs/pipe-validate.md` still described `input_form` as the only supported `views` token and carried no field reference for `output_form`, which has been wrong since that view shipped in v0.22.0 — so the cross-reference added for the artifacts pointed at a page that did not document half of what it claimed. The changelog is restructured to the workspace rule it was breaking: sections in Added/Changed/Fixed order, one paragraph per bullet, no rationale essays. On the test: the artifacts assertion was already load-bearing, but the `pipe_io_artifacts_error` assertion only checked the field's own default, so dropping that key from the rehydration would have stayed green. The stub can now carry a failed-build message and a new test drives it end to end through the SPI round-trip; removing the key fails that test and only that test. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KXNdmYQgikcZSza6YHrW6f --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KXNdmYQgikcZSza6YHrW6f
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
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.23.0
Bumps version from
0.22.0to0.23.0. Promotesdev→main.Two pull requests are promoted: #72 (the
pipelex0.57.0 pin and the/executeI/O artifacts) and #71 (a/releaseskill doc change, which publishes nothing and so carries no changelog entry). A minor rather than a patch because the pin move publishes a breaking wire-value change, marked below.Changelog
[v0.23.0] - 2026-09-08
Added
POST /v1/executecarries the run's I/O artifacts beside its execution graph:pipe_output.pipe_io_artifactsgroups thepipe_io_contracts,input_formandoutput_formthat/validateproduces, keyed by namespacedpipe_refover the run library's own pipes, so a consumer rendering a run's graph can describe a data node from the run itself rather than pairing that graph with a validation of some other bundle text. It isnullunless the run generated a graph withgraphs_inclusion.graphspec_jsonon, andpipe_io_artifacts_errorcarries the message when the build ran and failed.Changed
pipelex0.57.0: up from==0.56.0, exactly, for thePipeIOArtifactscarrier and its SPI transport that the/v1/executeaddition above reads back onto the public wire. The.pipelex/config schema did not move, so no migration is required.mthds_version: "2.0.0"(Breaking):pipelex0.57.0 moves tomthds0.14.0, whoseMTHDS_STANDARD_VERSIONwas cut from1.0.0, so every cratePOST /v1/resolveemits andPOST /v1/build/runnernormalizes carries the new stamp and a consumer comparing against1.0.0has to move. Crate fingerprints are unaffected —mthds_versionis excluded from the hashed payload by design — but aMETHODS.tomlpinning the old major, such as^1.0.0, now warns where it did not before. The MTHDS Protocol version is unchanged at0.6.0.POST /v1/codegenstampsengine_version0.57.0: the stamp is the pinnedpipelexversion, so every generated artifact header and everycodegen.lockthis release emits differs from the previous one, and a lock committed against0.56.0no longer matches until it is regenerated.PipeIOArtifactsschema and thepipe_io_artifacts/pipe_io_artifacts_errorfields it brings toPipeOutputWire, both inherited from pipelex'sPipeOutputrather than declared here. Nothing was removed and no type loosened, butPipeOutputWirepublishesadditionalProperties: false, so a strictly-validating client generated from the previous artifact rejects the added fields until it is regenerated.Fixed
/executeresponse reference documents its execution graph:docs/pipe-run.mdlistedtokens_usagesandusage_assembly_errorunderpipe_outputbut nevergraph_specorgraph_assembly_error, so a caller reading the reference had no way to learn the graph was on the wire at all. Both are documented now, beside thepipe_io_artifactspair added above, each with the configuration setting that actually gates it./validatereference documents theoutput_formview:docs/pipe-validate.mdstill describedinput_formas the only supportedviewstoken and carried no field reference foroutput_form, which has been wrong since that view shipped in v0.22.0.Closes L-260908-ca1ae9
Advances L-260902-3b8971
🤖 Generated with Claude Code
https://claude.ai/code/session_01KXNdmYQgikcZSza6YHrW6f
Summary by cubic
Promotes
devtomainas v0.23.0, bumping the version from0.22.0to0.23.0and pinningpipelex0.57.0.POST /v1/executenow carries the run's I/O artifacts beside its execution graph:pipe_output.pipe_io_artifactsgroups thepipe_io_contracts,input_form, andoutput_formthat/validateproduces, withpipe_io_artifacts_errorreporting a failed artifact build. The/executeand/validatereference docs now document fields they previously omitted, and the/releaseskill doc was trimmed to pipelex-api's specifics without publishing anything. Closes L-260908-ca1ae9.Breaking changes and migrations
mthds_version: "2.0.0"instead of"1.0.0", so consumers comparing against1.0.0must move; crate fingerprints are unaffected.POST /v1/codegenstampsengine_version0.57.0, so acodegen.lockcommitted against 0.56.0 no longer matches until regenerated.PipeIOArtifactsschema and the two new fields; strictly-validating clients generated from the previous artifact reject them until regenerated.Written for commit d473708. Summary will update on new commits.