Conversation
A failing dry run is now one located dry_run item per failing pipe, found at the innermost pipe that failed rather than repeated for every controller around it, and carrying its pipe code, domain and source. Its text keeps the failure's own message only when that message is caller-facing. validate pipe and validate --all answer it with the same invalid verdict as validate bundle. Every error the parser reports becomes an item, an uncategorized one included, with its field path. A TOML syntax error's item carries its line and column, and an unresolved concept's item lists the concepts its domain declares. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s not tolerated An unresolved concept's declared_concepts now lists only what the validated bundle declares in its domain, never the concepts an earlier load brought in, which may be a host's own library. A dry-run failure met at a pipe allowed to fail stays on the swept pipe that failed because of it, and a source an older library manager gives as a Path is kept as text. The sweep router catches only the failures the sweep classifies, and a misspelled key keeps its name in the field path even when it is hyphenated or reads like a type name. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ipe around it The sweep's recorder never notes a pipe the configuration allows to fail, so a failure met there is noted at the next pipe outward, the innermost one that is not allowed to fail. With several controllers above a tolerated pipe, the fault is now one item at that pipe rather than one per swept controller, and the docs, the DryRunError page and the changelog say so. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A dry-run failure located at a pipe loaded from the host's own library directories kept that pipe's on-disk path as its item's source, which STRICT disclosure passes to the caller. validate_bundle now tells the sweep which pipes are the content under validation, and only those name their file; a library pipe is still located by its code and domain. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review pass at profile 4, round 3 (bar necessity) on 8a8e859. Reviewers: cubic, Codex review, Codex adversarial and code-review; one verifier. Fixed in 6caef5e (critical): a dry-run failure located at a pipe loaded from the host's own library directories carried that pipe's on-disk path as its item's source, which STRICT disclosure passes to the caller. Only pipes of the content under validation name their file now. Deferred (unverified unless stated): the title-only text of dry-run failures that are not caller-facing, on local surfaces too; union-branch noise items on pipe fields; the per-pipe dedupe dropping a distinct fault at a shared sub-pipe, and dependency aliases colliding; one failure per multi-branch parallel run; test_validation_render.py still describing the single dry-run rendering. Verified, for conformance: tests/pipelex_agent/test_validate_errors.py:247 asserts a dry_run item has no source. round 4 — bar necessity — profile 4 (derived) — the round-3 pass fixed a critical, so this pass is held to necessity rather than the ladder's freeze: the fix is verified by a pass that may still fix what the fix broke |
The round-3 source filter also ran when a bundle is validated from a file on the caller's own disk, so a dry-run failure in a sibling file of the same method lost its source and the CLI its Source line. Only validation of submitted content, which every hosted path uses, filters sources now. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Review pass at profile 4, round 4 (bar necessity) on the round-3 fix commit 6caef5e. Reviewers: cubic, Codex review, Codex adversarial and code-review; one verifier. Fixed in 1cb2412: the round-3 source filter also ran when a bundle is validated from a file on the caller's own disk, so a dry-run failure in a sibling file of the same method lost its source. Only validation of submitted content, which every hosted path uses, filters sources now. Deferred, unverified: pipe_ref equality is not provenance, so an aliased dependency sharing a submitted pipe's ref could be given the submitted file as its source; and load-time items raised by a pipe of the host's own library still carry the host file as their source, which predates this branch. stalled — round 5 would pass the cap of 4, and the round-4 pass fixed under its bar; a person decides |
Validation no longer loses detail before the reader: a failing dry run is one located dry_run item per failing pipe, at the innermost pipe that failed and is not allowed to fail, where it used to be one item holding a repr of the sweep's records, repeated for every controller around it. Every error the parser reports is now an item, an uncategorized one included with its field path, a TOML syntax error carries its line and column, and an unresolved concept lists the concepts the validated bundle declares in its domain. validate pipe and validate --all answer a failing dry run with the same invalid verdict as validate bundle.
Closes L-260925-024e20
🤖 Generated with Claude Code
Summary by cubic
Validation no longer loses detail before the reader: every parser error becomes a validation item, and a failing dry run is now one located
dry_runitem per failing pipe at the innermost pipe that failed instead of one item holding a repr of the sweep's records repeated for every controller around it.validate pipeandvalidate --allnow answer a failing dry run with the same invalid verdict asvalidate bundle, and the agent CLI'sdry_run_errorextra is dropped in favor of the item.Written for commit 1cb2412. Summary will update on new commits.