Repository navigation
v0.74.0
[v0.74.0] - 2026-10-05
Added
- A reference to a package's private pipe is refused as unexported: a consumer naming a pipe that a loaded dependency package declares but does not export is refused at load with the new
PipeValidationErrorTypevalueunexported_pipe_dependency, whose item names the referring pipe inpipe_codeand the reference inmissing_pipe_code.
Changed
- The hosted-only inference provider plugin is no longer shipped (Breaking): its built-in plugin, its sdk tokens, its error classes and their reference pages, and the
PipelexBackendmember naming its backend are removed, leavingPipelexBackend.INTERNALalone. A project config that still declares the hosted backend disabled, or a routing profile that names it but is not active, keeps booting; a model spec naming one of its sdk tokens now fails when its worker is built, unless a plugin of your own registers that token.
Fixed
- A dependency package's pipes call their own sub-pipes: a sequence, parallel, condition or batch inside an installed package now reaches the package's own pipe, stored as
alias->domain.code, where it used to look the plaindomain.codeup in the consumer's library. A package whose controllers call its own pipes, such asgithub.com/Pipelex/methods/documentsfrom 0.1.3, no longer fails to load withPipeNotFoundError, and a consumer pipe of the same domain and code is no longer run in the package's place. - An exported pipe can call its package's private pipes (Breaking): a package with
[exports]loads every pipe its exported pipes andmain_pipes reach, not the exported ones alone, and a private pipe nothing public reaches is not built. Exports are read by domain, so exportingxfrom one domain no longer exports a pipe namedxin another, andPipeLibrary.add_dependency_pipetakesis_exported. - A missing pipe of a loaded package is refused at load: a reference to a pipe a loaded dependency package does not have is refused as
unresolved_pipe_dependency, naming the package, where it was skipped and reported as an extraneous input with a wrong suggested fix. A dependency's own reference to another package is not checked against the consumer's packages, since a dependency's dependencies are not loaded. - A pipe wrapping another package's pipe of the same domain and code reports its inputs: the recursion guards of the needed-inputs, signature and file-input walks tell two pipes of the same
domain.codeapart by object rather than bypipe_ref. A consumer pipe calling a dependency's pipe of its own domain and code, or one package's pipe calling another's, was taken for an already-visited pipe and reported no inputs, so a correct bundle was refused with an extraneous-input error. - A bare reference into a package ignores its private pipes when an exported one matches: a consumer's
alias->codethat matches an exported pipe and a private pipe of the same code in another domain resolves to the exported one, where it was refused as ambiguous. - A dependency pipe that fails to build is refused naming why: a reference to a pipe the package declares but could not build, such as a
PipeFuncnaming an unregistered function, is refused with that build error, where it was reported as a pipe the package does not have. A barealias->codematching such a pipe is refused the same way, rather than resolved to another pipe of that code.
What's Changed
- feature/Manifold-out-of-pipelex · L-261005-ebc2ad by @lchoquel in #1337
- feature/Durations-refresh-exceeds-argmax · L-261004-575c40 by @lchoquel in #1339
- feature/Undo-over-reaching-hosted-renames · L-261005-540453 by @lchoquel in #1340
- feature/Consumer-pipe-shadows-dependencys · L-260929-7dcd75 by @lchoquel in #1341
- feature/Manifold-out-of-pipelex · L-261004-d4e065 by @lchoquel in #1342
- Release v0.74.0 by @lchoquel in #1343
Full Changelog: v0.73.0...v0.74.0