Release v0.6.0
Merged
LC
2mo ago+2414+2414+0123456789012345678901234567890123456789-238-238-012345678901234567890123456789
Release v0.6.0
Bumps version from 0.5.0 to 0.6.0 — a minor bump, per the repo's pre-1.0 rule that breaking changes move the minor segment.
Changelog
[v0.6.0] - 2026-08-25
Added
- Paginated catalog surface: Introduced
iterate_methodsanditerate_runsasync generators that follow pagination cursors to fetch entire catalogs without silent truncation, backed by new product models (MethodPage,MethodSummary,RunPage,RunDetail,RunErrorReport,MethodFile). A runaway page backstop raises the newPagingNotTerminatingErrorinstead of looping forever on a cursor that cycles across non-empty pages. - Run details: Added
get_run_detail(run_id)to fetch a single run's execution details, includingmthds_contentsandinputs, which are excluded from list views for performance. - Validation views & typed reports: Added a
viewsparameter tovalidateandvalidate_filesfor opt-in structured views (e.g.VALIDATION_VIEW_INPUT_FORM), and extendedPipelexValidationReportwith typedwarnings,liftable_pipes, andinput_formfields. - Structured repair proposals: Added
SuggestedFixand a fix-operation vocabulary (FixOpKind,FixSafety, etc.) toValidationErrorItem, along with a newmissing_pipe_codefield. - Method file parsers: Added
parse_method_filesandserialize_method_filesto convert custom Python source files to and from the platform's at-rest catalog string format. - Typed
method_id:execute,start, andstart_and_waitnow acceptmethod_idas a first-class, typed keyword parameter.
Changed
list_methodsandlist_runsnow return page envelopes (MethodPageandRunPage) instead of bare arrays, withq,limit, andcursorquery parameters forwarded based on presence rather than truthiness. (Breaking)PipelineRun.method_idandpipe_codeare now nullable to accurately reflect platform behavior for ad-hoc runs and dynamic pipes. (Breaking)MethodData.pythonis now a typedlist[MethodFile]instead of a raw string, converted automatically at the client boundary. (Breaking)delete_methodnow returns aMethodDeletionAcceptedobject instead ofNone, reflecting that deletion is an asynchronous cascade rather than an immediate synchronous action. (Breaking)- The
extraparameter on run methods now rejectsmethod_id; it must be passed via the dedicated named parameter, and passing a non-stringmethod_idraises aPipelineRequestErrorat the client boundary rather than delegating the failure to the server. (Breaking) - Bumped the
mthdsdependency floor from>=0.8.1to>=0.8.2. - Linting & tooling: Bumped the
ruffdev dependency to0.16.4to match the version the VS Code extension bundles, convertedpyproject.tomlselector lists to rule names instead of codes, and explicitly ignoredtoo-many-statements-in-try-clause.
Fixed
- Pagination crash: Fixed a critical bug where
list_methodsandlist_runscrashed against the deployed platform after the API shifted to{items, next_cursor}envelope responses; tests were updated to mock the correct paginated shape. - Docs – parity claims: Updated
docs/architecture.mdto honestly reflect the parity gaps with the TypeScript@pipelex/sdk(e.g. deferringlint,format,codegen) instead of claiming a surface-complete client. - Docs – import paths: Fixed a broken import path in the
README.mdquickstart (PipelexValidationResultis owned by this package, notmthds). - Docs – brand attribution: Corrected docstrings and architecture docs to attribute
TokensUsageRecordas a Pipelex runtime extension rather than an MTHDS protocol specification. - Docs – dead links: Replaced unopenable internal repository citations in docstrings and comments with explicit, readable rule descriptions.
Summary by cubic
Aligns the SDK with the platform’s paginated list APIs and the updated validate contract, adds first-class run/catalog features, and clarifies doc titles/status with no behavior changes. Previously list_methods/list_runs returned arrays and crashed against {items, next_cursor}; they now return page envelopes with async iterators and raise PagingNotTerminatingError on runaway cursors.
-
New Features - New features added
iterate_methodsanditerate_runsfollownext_cursoracross pages with a capped backstop.get_run_detail(run_id)returns a run’s inputs and method contents.validate/validate_filesacceptviews; reports typewarnings,liftable_pipes, andinput_form.ValidationErrorItemaddsmissing_pipe_codeand a structuredSuggestedFix(fix-op union).parse_method_files/serialize_method_filesconvert custom Python sources to the catalog form.execute/start/start_and_waitaccept a typedmethod_id; iterators may raisePagingNotTerminatingError.
-
Migration - Steps needed for adoption (if applicable)
- Update callers to consume
MethodPage/RunPage; useiterate_*to traverse all items. - Handle
PipelineRun.method_idandpipe_codebeing null. - Treat
MethodData.pythonaslist[MethodFile]; use the parse/serialize helpers when reading/writing. - Update
delete_methodcall sites to handleMethodDeletionAccepted(async cascade). - Pass
method_idvia the named parameter; remove it fromextra, and expect a clientPipelineRequestErrorfor non-strings. - Pin dependencies to
mthds>=0.8.2and, for dev,ruff==0.16.4.
- Update callers to consume