Skip to content

NAME_MISMATCH is reported under COMMUNITY_LEVEL but the strictly worse defect there stays silent #326

Description

@realmarcin

Found in the second review of PR #316.

When resolve_member returns None, UNKNOWN_SOURCE/UNKNOWN_TARGET is suppressed for scope == "COMMUNITY_LEVEL". The new NAME_MISMATCH block sits outside that guard. So the ordering is inverted:

  • a participant naming nothing at all → no finding
  • a participant that at least resolves by id → a warning

Verified on the real KB: 5 of the 9 NAME_MISMATCH findings are on COMMUNITY_LEVEL interactions, and 27 COMMUNITY_LEVEL participants resolve to nothing and are reported nowhere.

One interaction carries both. kb/communities/GLBRC_UFMP_Fermentation_Community.yaml, COMMUNITY_LEVEL "Actinobacteriota-Firmicutes Cross-Feeding Network":

  • source_taxon Olsenella (Actinobacteriota) / NCBITaxon:133926 — matches nothing by name, no unique id candidate → silent
  • target_taxon Clostridium (Firmicutes) / NCBITaxon:1485 → NAME_MISMATCH warning

Same interaction, same class of problem, opposite treatment, and the milder one is the one reported.

Note the fix cannot simply be "move NAME_MISMATCH inside the guard" — that would re-open, for COMMUNITY_LEVEL, exactly the silent-binding hole #317 closed. Participants under COMMUNITY_LEVEL still bind and still count toward connected_taxa.

Proposed: report unresolved COMMUNITY_LEVEL participants too, at warning severity (PAIRWISE stays error). Consistent ordering, nothing newly gates, and 27 invisible participants become visible — which is also the data #319 needs.

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