Refuse a ref that is no ref, rather than answering over it
The pin moves to Epiphany `5cda0886`, where `PipelineRef::validate_ref` opens the leaf's grammar to a reader. `view` and `history`'s subject scope ask it before they look, so a ref whose kind and id disagree is refused instead of reporting the nothing a lookup finds. `query`'s `campaign`, `cut` and `repo` filters take a `Slug`, a `Label` and an `OrgRepo`, not refs, and are unchanged. The refusal is `MindRefusal::Document`, the leaf's `InvalidFormat` wrapped where the organ already wraps the leaf's four. A new variant would be a second name for one rule, and the grammar it names lives in the leaf. `a_ref_whose_kind_and_id_disagree_is_refused_by_both_doors` pins both doors on a disagreeing kind and on a local no writer composes, and pins that absence is still absence: a well-formed id of a document this mind does not hold answers `None` and an empty history as it always did. The history test's malformed scope asserts the refusal where it asserted an empty answer. `V24` and `V24L` in `tools/eureka-cut9-mutations.psd1` are the validation dropped and the validation applied at `view` alone. `V10L` leaves the suite with its reason in the header: a subject compared by `id` alone can no longer differ from one compared whole, since both sides' kind is now a function of the id, so the weakening is unreachable and a mutation that cannot fail is not a proof. `cargo test -p huginn-mind --lib` 57 passed, 0 warnings; `cargo check --workspace` clean; Cut 8 and Cut 9 suites green-and-killed through the harness. The lock moves the one pin. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
333e1c4314
commit
5ba7b0c6e5
4 changed files with 124 additions and 26 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
|
@ -146,7 +146,7 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
|
|||
[[package]]
|
||||
name = "epiphany-pipeline"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/GameCult/Epiphany.git?rev=d5a36c2a291b910539072717d42d61a9aa7485d1#d5a36c2a291b910539072717d42d61a9aa7485d1"
|
||||
source = "git+https://github.com/GameCult/Epiphany.git?rev=5cda0886bd937b9df18309de7f505029d0e41f4d#5cda0886bd937b9df18309de7f505029d0e41f4d"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"chrono",
|
||||
|
|
|
|||
Loading…
Reference in a new issue