Skip to content

0.0.39

Choose a tag to compare

@b10x-bot b10x-bot released this 20 Oct 00:55
· 28 commits to main since this release
67bd555

Added

  • !SupersedeNode {node, by, reason, evidence} retires a duplicate node in favour of the node
    that replaces it, in a revision of its own (story:supersede-node, design § 110). The node and
    every edge at it leave the head and are kept in a supersession record — the node and its edges
    as they were, by, the revision, the reason and the evidence — which ekr snapshot lists under
    superseded; assertions about it are not changed, and every earlier revision still reads it.
    Every head read omits it. ekr resolve of its type and one of its aliases answers by, even when
    by is of another type, and those aliases stay taken (alias-already-exists). A read of its id
    at the head — /node/<id> in either format, /expand, the MCP describe_node and expand, the
    session's — is refused as ekr.views.NodeSuperseded, naming by; /changes lists the
    supersession as a NodeSuperseded change, with the node kept in target. Refused by name:
    supersede-unknown-node, node-already-superseded, supersede-into-itself,
    supersede-by-unknown-node, supersede-by-superseded-node, supersession-without-reason,
    supersession-without-evidence, supersession-evidence-unknown and
    superseded-node-named-in-transaction; a later operation naming a superseded node or a retired
    edge is node-superseded, naming by. Applied under every validation profile. The SDK builds
    it (NodeSupersession) and reads SnapshotGraph::superseded and ChangeKind::NodeSuperseded.
    A store that never supersedes keeps its roots and checkpoint bytes. A read that reaches an
    assertion naming a superseded node names its pointer: subject_superseded_by and
    object_superseded_by in ekr sample and ekr explain, object_superseded_by on every rendered
    assertion (SDK SampledFact, ViewAssertion, SnapshotAssertion). /timeline of a superseded
    subject is ekr.views.NodeSuperseded; ekr compare compares the records as a superseded
    category, listed only where either store holds one. ekr apply-extraction replaces a value
    under a superseded key on the node kept, and a fact refused after resolving through a
    supersession to a node of another type names it.