v0.7.0
v0.7.0
Release scope:
- Minor release for the HigherGraphen Rust workspace at
0.7.0. - Extends the deterministic core's expressiveness for AI-authored,
incidence-centric, non-numeric advisory domains, in response to downstream
(AdvisoryGraphen) friction points. All additions stay deterministic, emit
structured records, preserve provenance/severity/review separation, and never
promote generated results into accepted facts. Design spec:
docs/specs/advisory-domain-extensions.md. - Git tag and GitHub Release are prepared for publication after maintainer
approval.
Highlights:
- Obstruction richness:
CheckResult::to_obstructionnow carries a custom
obstruction type, counterexample, and required resolution via optional
Violationfields. The built-inInvariantViolation/ConstraintUnsatisfied
mapping is preserved when the new fields are unset. - Projection loss:
measure_projection_lossnatively handles untraced and
empty attributable output, emittingSourceTraceMissing(item-level) without
conflating it withUnsupportedLossMetric(kind-level).ProjectionEntry/
ProjectionSection/ProjectionOutputconstructors accept empty source
attribution and empty collections. - Completion taxonomy:
MissingType::Customextension mirroring
ObstructionType::Custom, flowing through rule-driven detection and completion
unchanged. Downstream domains can register custom missing kinds. - Wire ergonomics: stable
kind()discriminant accessors onGluingResult,
DifferenceSeverity, andOverlapWitnessKind, verified against serde output. - Wire stability:
docs/specs/wire-stability-contract.mddeclares the JSON
compatibility surface; cross-linked fromcore-contracts.md. - Incidence engine:
reasoning::incidence::IncidenceConsistencyEngine, a bounded
deterministic engine over non-numeric incidence views that emits dangling,
uncovered-region, and context-mismatch obstructions derivable purely from
explicit input. It constructs no cells, morphisms, or complexes.
Breaking changes:
MissingTypeis no longerCopy(nowClone) and gained aCustom(String)
variant with a manual serde implementation. Built-in variants keep their
existing snake_case wire form; custom values serialize with acustom:prefix.