Conversation
Every input-domained refusal raised while loading a bundle now becomes a ValidateBundleError item instead of a no-verdict fault. The unknown model is the worked example: the operator raises a located PipeOperatorModelChoiceError (input domain, caller-facing) that the cascade turns into a pipe_validation item with the unknown_model code, the field path, the reference as written, its model type and the deck's close matches, plus a rename-model fix when there is exactly one. Other input refusals at pipe build are wrapped in the new PipeLoadRefusalError, located on the pipe and its source. The bare and agent validate commands route their library load through the cascade, so they exit 1 with the invalid verdict, and a failing dry run under `pipelex validate pipe` or `--all` renders the panel rather than a traceback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FigDssaJrvNcmbnBedi7oq
The rename-model fix is now UNSAFE: its one suggestion is a fuzzy match over the deck's names, which can be a different model, so `pipelex fix bundle` never applies it on its own. The availability handler's docstring again says validate passes exit code 2 for a model no backend serves. The CLI docs now say that agent `validate pipe` answers a failing dry run with the DryRunError envelope, and that a refusal whose class does not declare the input domain still leaves as no verdict. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FigDssaJrvNcmbnBedi7oq
…nselectable A refusal raised while building a synthetic helper of a preliminary_text PipeLLM is now located on the authored pipe and field, because the library crate carries the elaborator's metadata beside its source map; before, the unknown_model item named `<code>__structure` and its fix targeted a table the author never wrote. Pipes of a dependency package are built under the same locating context as the main load, so their refusals name their file. The unsafe rename-model code is no longer accepted by --select/--ignore, and the "suggested fix not applied" tip counts only safe fixes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A dependency package's pipes are built outside the main load loop. These tests load one through `_load_single_dependency` and check that an unknown model names the dependency's file, that a preliminary_text helper's refusal lands on the authored pipe and field, and that any other input refusal becomes a PipeLoadRefusalError located on the pipe. Each test fails when the locating wrapper is removed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The comment above KNOWN_FIX_CODES still said it held every code the planner can emit while the lines below it said rename-model is left out on purpose. It now says what the set is: the SAFE rules the fix loop can apply, with an UNSAFE rule such as rename-model kept out. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
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.
Every refusal of the caller's input raised while a bundle is loaded now becomes a validation verdict item instead of a no-verdict fault, with the unknown model as the worked example: a located
unknown_modelitem carrying the pipe, field path, reference as written, model type and the deck's suggestions, plus an unsaferename-modelfix when there is exactly one. Other input-domained refusals at pipe build are located on their pipe through the newPipeLoadRefusalError, and the bare and agent validate commands answer them with exit 1 and the invalid-bundle output rather than exit 2 or a traceback.Closes L-260925-de5f3b
🤖 Generated with Claude Code
Summary by cubic
Every refusal of the caller's input raised while a bundle is loaded now becomes a validation verdict item instead of a no-verdict fault. The worked example is the unknown model: a pipe whose
modelfield names a handle, alias, preset or waterfall the deck does not define now validates to oneunknown_modelitem carrying the field path, the reference as written, the model type and the deck's suggestions, plus an unsaferename-modelfix when the deck offers exactly one suggestion. The bare and agent validate commands now answer load-time refusals and failing dry runs with exit 1 and the invalid-bundle output where they used to exit 2 or print a traceback.PipeLoadRefusalError, located on the pipe and its source file.preliminary_textPipeLLMis located on the authored pipe and field via the elaboration metadata the crate now carries.rename-modelfix is not accepted by--select/--ignore, andpipelex fix bundlenever applies it on its own.Written for commit 5312fcc. Summary will update on new commits.