Skip to content

Node confidence is not normalized by the build (edges and hyperedges are) #4529

Open

Description

@grazenN

A consistency gap in the confidence handling: _fold_confidence normalizes the confidence/confidence_score pair on edges (build.py ~L540) and hyperedges (~L1223), but nodes get no equivalent fold. Node dicts pass through the build verbatim (validate.py checks only {id, label, file_type, source_file}; unknown fields are preserved), so when a prompt schema emits per-node confidence (as ours now does) the values reach graph.json unnormalized: a model emitting "extracted" (lowercase), a bare float, or a drifted string lands as-is, while the same drift on an edge is folded to the enum + score.

Suggested shape: fold nodes in the same place node aliases are folded (_fold_node_aliases), so nodes and edges share one normalization contract. No behavior change for graphs without node confidence.

Environment: graphifyy 0.9.92, Python 3.13. Found wiring node-level confidence through an extraction pipeline; our extractor carries a local backstop fold meanwhile.

Activity

  1. github-actions commented on Oct 17, 2026

    @github-actions

    Thanks for opening this issue, @grazenN. A maintainer will take a look soon.

    If you would like to discuss it in real time, come say hi on our Discord server. For longer-form questions and ideas there is also GitHub Discussions.

    To help us triage, please make sure the report includes what you expected, what actually happened, and the steps (and a small sample) to reproduce it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions