A confident merge waits for no one, and a succession clashes with nothing - #696
Merged
Merged
Conversation
…hing Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: WaylandYang <wayland0916@gmail.com>
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Closes #693. A merge the adjudicator is confident about is no longer held for a person by a random sample. The execution gate reads time before calling two values a contradiction. The lease and recall benches now run with governance on, as a new base does.
Why
On the Blackbaud lease bench (dev 0306d0c) the lease stayed split into several entities. Questions about it came back with several answers: 9 and 7 of 18 right, with 6 partial in each run. The merges that would have joined it were held by two things:
escalate_sample.contradiction landlord. The consistency check has read time since Two values clash only while both hold #635; the gate never followed.The benches also turned governance off, so they measured a configuration users don't run.
What changes
adjudication.rs:HUMAN_SAMPLE_PCTand the sampling branch are removed. A confident verdict goes straight to the gate. Rows escalated asescalate_sampleearlier keep their label, and the governor takes them like any waiting pair.temporal::merge_would_overlap: takes both sides' rows on each unique predicate as one timeline and ends each row the way the engine would (desired_ends). It then asks whether two different values still hold at one moment:still_overlaps, has unit tests.execution_gate::impact_ofuses it forcontradictions; derived facts and answers are unchanged.lease_bench.pyandrecall.mjssetgovernance = true. Ontology growth and inference materialization stay off, so two runs share an ontology.Checks
a_value_that_took_over_from_another_is_not_a_contradiction(store): CEO Alice from 2019 on one name and Bob from 2021 on the other are not held. The same start on both sides still is.two_values_overlap_only_when_the_engine_cannot_order_them(unit): succession, same day, no time, crossing stated intervals, eternal.cargo test -p utopia-store265 passed and-p utopia-server278 passed, on a fresh database. clippy-D warningsand fmt are clean.a_clash_one_side_already_had_is_not_the_merges(store): fails without the change and passes with it.🤖 Generated with Claude Code