PBSOI Semantic Diff v0.5

Base: /mnt/data/cisg_repolumen_poc/repolumen_slice
Target: /mnt/data/cisg_repolumen_poc/mutation_slice
9
Semantic events
1
Dependencies Δ
2
Calls Δ
0
State writers Δ
0
Effects Δ
0
Motifs Δ
4
Findings Δ
2
Exceptions Δ
0
Impact targets Δ

Semantic events

SeverityKindChangeBasis
highfinding_addedFinding added: unreachable_statement at repo_semantic/incremental.py::_injected_mutable_defaultdetector diff
highfinding_addedFinding added: mutable_default at repo_semantic/incremental.py::_injected_mutable_defaultdetector diff
mediumfinding_addedFinding added: module_import_cycle at ::detector diff
mediumfinding_addedFinding added: bare_except at repo_semantic/incremental.py::_injected_bare_exceptdetector diff
mediumexception_structure_addedException structure added: raises RuntimeErrornormalized exception structure
mediumexception_structure_addedException structure added: handler ['*']normalized exception structure
mediumdependency_addedDependency added: repo_semantic/incremental.py → repo_semantic/historical_timeline.pynormalized imports relation
lowcall_addedCall added: _injected_mutable_default → bucket.appendnormalized call relation
lowcall_addedCall added: _injected_bare_except → RuntimeErrornormalized call relation

Impact breadth changes

Impact Δ is bounded review-scope change, not defect truth.

TargetΔ breadthBeforeAfterVector Δ
No impact breadth change in evaluated targets.

File content identity

Hash changes are content evidence and are intentionally separate from semantic changes.

FileBase SHATarget SHABytes Δ
repo_semantic/incremental.py94c006ad1e6bb16f24db1f386eb4+357

Possible rename / move candidates

Only unique exact normalized function-shape matches are shown; these remain inferred candidates.

FromToConfidenceBasis
No conservative rename/move candidate.
{
  "version": "semantic-diff-0.5",
  "definition": "Semantic diff compares normalized program identities and relations rather than source line positions. File hashes are reported separately as content change evidence.",
  "base": {
    "root": "/mnt/data/cisg_repolumen_poc/repolumen_slice",
    "analyzer_version": "0.5.0",
    "metrics": {
      "loaded_files": 7,
      "nodes": 526,
      "edges": 1125,
      "node_types": {
        "file": 7,
        "function": 25,
        "class": 1,
        "method": 2,
        "boundary_module": 7,
        "data_value": 167,
        "data_sink": 40,
        "control": 72,
        "data_use": 34,
        "data_phi": 49,
        "data_undefined": 35,
        "boundary_call": 63,
        "state_region": 9,
        "module_binding": 9,
        "exception_event": 2,
        "boundary_exception": 1,
        "exception_handler": 2,
        "effect": 1
      },
      "edge_types": {
        "contains": 28,
        "imports": 26,
        "defines": 216,
        "contains_data": 74,
        "returns_value": 96,
        "controls": 72,
        "flows_to": 198,
        "guards": 78,
        "phi_input": 98,
        "calls": 194,
        "aliases_at_definition": 5,
        "reads_state": 16,
        "reads_binding": 10,
        "raises": 2,
        "exception_flow": 2,
        "contains_exception_handler": 2,
        "effect": 1,
        "writes_state": 7
      },
      "resolved_local_calls": 34,
      "boundary_calls": 160,
      "findings_by_category": {
        "hotspot": 16
      },
      "findings_by_severity": {
        "info": 16
      },
      "motif_instances": 16,
      "motif_clusters": 6,
      "data_values": 167,
      "phi_nodes": 49,
      "data_edges": 691,
      "alias_edges": 5,
      "state_regions": 9,
      "state_reads": 16,
      "state_writes": 7,
      "module_binding_reads": 10,
      "exception_handlers": 2,
      "explicit_raises": 2,
      "unresolved_local_uses": 0,
      "warnings": 0
    }
  },
  "target": {
    "root": "/mnt/data/cisg_repolumen_poc/mutation_slice",
    "analyzer_version": "0.5.0",
    "metrics": {
      "loaded_files": 7,
      "nodes": 536,
      "edges": 1138,
      "node_types": {
        "file": 7,
        "function": 27,
        "class": 1,
        "method": 2,
        "boundary_module": 7,
        "data_value": 168,
        "data_sink": 42,
        "control": 73,
        "data_use": 34,
        "data_phi": 49,
        "data_undefined": 35,
        "boundary_call": 65,
        "state_region": 9,
        "module_binding": 9,
        "exception_event": 3,
        "boundary_exception": 1,
        "exception_handler": 3,
        "effect": 1
      },
      "edge_types": {
        "contains": 30,
        "imports": 27,
        "defines": 217,
        "contains_data": 76,
        "returns_value": 97,
        "controls": 73,
        "flows_to": 198,
        "guards": 78,
        "phi_input": 98,
        "calls": 196,
        "aliases_at_definition": 5,
        "reads_state": 16,
        "reads_binding": 10,
        "raises": 3,
        "exception_flow": 2,
        "contains_exception_handler": 3,
        "caught_by": 1,
        "effect": 1,
        "writes_state": 7
      },
      "resolved_local_calls": 34,
      "boundary_calls": 162,
      "findings_by_category": {
        "defect": 4,
        "hotspot": 16
      },
      "findings_by_severity": {
        "high": 2,
        "medium": 2,
        "info": 16
      },
      "motif_instances": 16,
      "motif_clusters": 7,
      "data_values": 168,
      "phi_nodes": 49,
      "data_edges": 693,
      "alias_edges": 5,
      "state_regions": 9,
      "state_reads": 16,
      "state_writes": 7,
      "module_binding_reads": 10,
      "exception_handlers": 3,
      "explicit_raises": 3,
      "unresolved_local_uses": 0,
      "warnings": 0
    }
  },
  "summary": {
    "files_added": 0,
    "files_removed": 0,
    "files_modified": 1,
    "entities_added": 2,
    "entities_removed": 0,
    "dependencies_added": 1,
    "dependencies_removed": 0,
    "calls_added": 2,
    "calls_removed": 0,
    "state_readers_added": 0,
    "state_readers_removed": 0,
    "state_writers_added": 0,
    "state_writers_removed": 0,
    "effects_added": 0,
    "effects_removed": 0,
    "motifs_added": 0,
    "motifs_removed": 0,
    "findings_added": 4,
    "findings_resolved": 0,
    "exception_structures_added": 2,
    "exception_structures_removed": 0,
    "impact_targets_changed": 0,
    "possible_renames_or_moves": 0,
    "semantic_events": 9
  },
  "changes": {
    "files": {
      "added": [],
      "removed": [],
      "modified": [
        {
          "path": "repo_semantic/incremental.py",
          "base_sha256": "94c006ad1e6bb1857d2527829b9544755eca304e01c5ef7ebbbd91680480f659",
          "target_sha256": "6f24db1f386eb42763a397ff2f37b0f051242bac64dd43a4495f76147f63998a",
          "base_bytes": 644,
          "target_bytes": 1001
        }
      ]
    },
    "entities": {
      "added": [
        {
          "id": "fn_e5aa9374079897e1",
          "type": "function",
          "label": "_injected_bare_except",
          "symbol": "_injected_bare_except",
          "path": "repo_semantic/incremental.py",
          "module": "repo_semantic.incremental",
          "status": "observed",
          "confidence": 1.0,
          "motif_signature": "motif_exact_22178f0240c4"
        },
        {
          "id": "fn_6a8d8e6630758cc3",
          "type": "function",
          "label": "_injected_mutable_default",
          "symbol": "_injected_mutable_default",
          "path": "repo_semantic/incremental.py",
          "module": "repo_semantic.incremental",
          "status": "observed",
          "confidence": 1.0,
          "motif_signature": "motif_exact_44528bd13829"
        }
      ],
      "removed": []
    },
    "relations": {
      "calls": {
        "added": [
          {
            "type": "calls",
            "source": {
              "id": "fn_e5aa9374079897e1",
              "type": "function",
              "label": "_injected_bare_except",
              "symbol": "_injected_bare_except",
              "path": "repo_semantic/incremental.py",
              "module": "repo_semantic.incremental",
              "status": "observed",
              "confidence": 1.0
            },
            "target": {
              "id": "boundary_67cab1d4456600e4",
              "type": "boundary_call",
              "label": "RuntimeError",
              "status": "unresolved",
              "confidence": 0.4
            },
            "resolution": "boundary",
            "status": "unresolved",
            "confidence": 0.4,
            "callee": "RuntimeError",
            "evidence": {
              "path": "repo_semantic/incremental.py",
              "line": 25,
              "end_line": 25,
              "source_hash": "6f24db1f386eb42763a397ff2f37b0f051242bac64dd43a4495f76147f63998a",
              "source_kind": "code"
            }
          },
          {
            "type": "calls",
            "source": {
              "id": "fn_6a8d8e6630758cc3",
              "type": "function",
              "label": "_injected_mutable_default",
              "symbol": "_injected_mutable_default",
              "path": "repo_semantic/incremental.py",
              "module": "repo_semantic.incremental",
              "status": "observed",
              "confidence": 1.0
            },
            "target": {
              "id": "boundary_3cc2220fa75698c9",
              "type": "boundary_call",
              "label": "bucket.append",
              "status": "unresolved",
              "confidence": 0.4
            },
            "resolution": "boundary",
            "status": "unresolved",
            "confidence": 0.4,
            "callee": "bucket.append",
            "evidence": {
              "path": "repo_semantic/incremental.py",
              "line": 21,
              "end_line": 21,
              "source_hash": "6f24db1f386eb42763a397ff2f37b0f051242bac64dd43a4495f76147f63998a",
              "source_kind": "code"
            }
          }
        ],
        "removed": []
      },
      "effect": {
        "added": [],
        "removed": []
      },
      "imports": {
        "added": [
          {
            "type": "imports",
            "source": {
              "id": "file_ac3545fcb0dfb1f4",
              "type": "file",
              "label": "repo_semantic/incremental.py",
              "path": "repo_semantic/incremental.py",
              "module": "repo_semantic.incremental",
              "status": "observed",
              "confidence": 1.0
            },
            "target": {
              "id": "file_fd85751ba7b0653c",
              "type": "file",
              "label": "repo_semantic/historical_timeline.py",
              "path": "repo_semantic/historical_timeline.py",
              "module": "repo_semantic.historical_timeline",
              "status": "observed",
              "confidence": 1.0
            },
            "resolution": "local",
            "status": "observed",
            "confidence": 1.0,
            "callee": null,
            "evidence": {
              "path": "repo_semantic/incremental.py",
              "line": 17,
              "end_line": 17,
              "source_hash": "6f24db1f386eb42763a397ff2f37b0f051242bac64dd43a4495f76147f63998a",
              "source_kind": "code"
            }
          }
        ],
        "removed": []
      },
      "reads_state": {
        "added": [],
        "removed": []
      },
      "writes_state": {
        "added": [],
        "removed": []
      }
    },
    "motifs": {
      "added": [],
      "removed": []
    },
    "findings": {
      "added": [
        {
          "path": "repo_semantic/incremental.py",
          "symbol": "_injected_bare_except",
          "status": "violated",
          "type": "bare_except",
          "category": "defect",
          "severity": "medium",
          "line": 26,
          "rule": "catch_all_requires_explicit_policy",
          "message": "Bare except catches every exception type."
        },
        {
          "type": "module_import_cycle",
          "category": "defect",
          "severity": "medium",
          "nodes": [
            "file_fd85751ba7b0653c",
            "file_ac3545fcb0dfb1f4"
          ],
          "rule": "import_graph_should_be_acyclic",
          "message": "Loaded modules form a static import cycle.",
          "status": "violated"
        },
        {
          "type": "mutable_default",
          "category": "defect",
          "severity": "high",
          "path": "repo_semantic/incremental.py",
          "symbol": "_injected_mutable_default",
          "line": 19,
          "rule": "mutable_default_argument",
          "message": "Mutable default argument can retain state across calls.",
          "status": "violated"
        },
        {
          "type": "unreachable_statement",
          "category": "defect",
          "severity": "high",
          "path": "repo_semantic/incremental.py",
          "symbol": "_injected_mutable_default",
          "line": 21,
          "rule": "no_statement_after_unconditional_terminator",
          "message": "Statement follows an unconditional terminator in the same lexical block."
        }
      ],
      "resolved": []
    },
    "exceptions": {
      "added": [
        {
          "type": "handler",
          "owner": {
            "id": "fn_e5aa9374079897e1",
            "type": "function",
            "label": "_injected_bare_except",
            "symbol": "_injected_bare_except",
            "path": "repo_semantic/incremental.py",
            "module": "repo_semantic.incremental",
            "status": "observed",
            "confidence": 1.0
          },
          "catches": [
            "*"
          ],
          "evidence": {
            "path": "repo_semantic/incremental.py",
            "line": 26,
            "end_line": 26,
            "source_hash": "6f24db1f386eb42763a397ff2f37b0f051242bac64dd43a4495f76147f63998a",
            "source_kind": "code"
          }
        },
        {
          "type": "raises",
          "owner": {
            "id": "fn_e5aa9374079897e1",
            "type": "function",
            "label": "_injected_bare_except",
            "symbol": "_injected_bare_except",
            "path": "repo_semantic/incremental.py",
            "module": "repo_semantic.incremental",
            "status": "observed",
            "confidence": 1.0
          },
          "exception": "RuntimeError",
          "evidence": {
            "path": "repo_semantic/incremental.py",
            "line": 25,
            "end_line": 25,
            "source_hash": "6f24db1f386eb42763a397ff2f37b0f051242bac64dd43a4495f76147f63998a",
            "source_kind": "code"
          }
        }
      ],
      "removed": []
    },
    "impact": {
      "changed": [],
      "meta": {
        "evaluated": 27,
        "candidate_count": 27,
        "cap": 500,
        "truncated": false,
        "depth": 3
      }
    },
    "possible_renames_or_moves": []
  },
  "semantic_events": [
    {
      "kind": "finding_added",
      "severity": "high",
      "message": "Finding added: unreachable_statement at repo_semantic/incremental.py::_injected_mutable_default",
      "basis": "detector diff",
      "payload": {
        "type": "unreachable_statement",
        "category": "defect",
        "severity": "high",
        "path": "repo_semantic/incremental.py",
        "symbol": "_injected_mutable_default",
        "line": 21,
        "rule": "no_statement_after_unconditional_terminator",
        "message": "Statement follows an unconditional terminator in the same lexical block."
      }
    },
    {
      "kind": "finding_added",
      "severity": "high",
      "message": "Finding added: mutable_default at repo_semantic/incremental.py::_injected_mutable_default",
      "basis": "detector diff",
      "payload": {
        "type": "mutable_default",
        "category": "defect",
        "severity": "high",
        "path": "repo_semantic/incremental.py",
        "symbol": "_injected_mutable_default",
        "line": 19,
        "rule": "mutable_default_argument",
        "message": "Mutable default argument can retain state across calls.",
        "status": "violated"
      }
    },
    {
      "kind": "finding_added",
      "severity": "medium",
      "message": "Finding added: module_import_cycle at ::",
      "basis": "detector diff",
      "payload": {
        "type": "module_import_cycle",
        "category": "defect",
        "severity": "medium",
        "nodes": [
          "file_fd85751ba7b0653c",
          "file_ac3545fcb0dfb1f4"
        ],
        "rule": "import_graph_should_be_acyclic",
        "message": "Loaded modules form a static import cycle.",
        "status": "violated"
      }
    },
    {
      "kind": "finding_added",
      "severity": "medium",
      "message": "Finding added: bare_except at repo_semantic/incremental.py::_injected_bare_except",
      "basis": "detector diff",
      "payload": {
        "path": "repo_semantic/incremental.py",
        "symbol": "_injected_bare_except",
        "status": "violated",
        "type": "bare_except",
        "category": "defect",
        "severity": "medium",
        "line": 26,
        "rule": "catch_all_requires_explicit_policy",
        "message": "Bare except catches every exception type."
      }
    },
    {
      "kind": "exception_structure_added",
      "severity": "medium",
      "message": "Exception structure added: raises RuntimeError",
      "basis": "normalized exception structure",
      "payload": {
        "type": "raises",
        "owner": {
          "id": "fn_e5aa9374079897e1",
          "type": "function",
          "label": "_injected_bare_except",
          "symbol": "_injected_bare_except",
          "path": "repo_semantic/incremental.py",
          "module": "repo_semantic.incremental",
          "status": "observed",
          "confidence": 1.0
        },
        "exception": "RuntimeError",
        "evidence": {
          "path": "repo_semantic/incremental.py",
          "line": 25,
          "end_line": 25,
          "source_hash": "6f24db1f386eb42763a397ff2f37b0f051242bac64dd43a4495f76147f63998a",
          "source_kind": "code"
        }
      }
    },
    {
      "kind": "exception_structure_added",
      "severity": "medium",
      "message": "Exception structure added: handler ['*']",
      "basis": "normalized exception structure",
      "payload": {
        "type": "handler",
        "owner": {
          "id": "fn_e5aa9374079897e1",
          "type": "function",
          "label": "_injected_bare_except",
          "symbol": "_injected_bare_except",
          "path": "repo_semantic/incremental.py",
          "module": "repo_semantic.incremental",
          "status": "observed",
          "confidence": 1.0
        },
        "catches": [
          "*"
        ],
        "evidence": {
          "path": "repo_semantic/incremental.py",
          "line": 26,
          "end_line": 26,
          "source_hash": "6f24db1f386eb42763a397ff2f37b0f051242bac64dd43a4495f76147f63998a",
          "source_kind": "code"
        }
      }
    },
    {
      "kind": "dependency_added",
      "severity": "medium",
      "message": "Dependency added: repo_semantic/incremental.py → repo_semantic/historical_timeline.py",
      "basis": "normalized imports relation",
      "payload": {
        "type": "imports",
        "source": {
          "id": "file_ac3545fcb0dfb1f4",
          "type": "file",
          "label": "repo_semantic/incremental.py",
          "path": "repo_semantic/incremental.py",
          "module": "repo_semantic.incremental",
          "status": "observed",
          "confidence": 1.0
        },
        "target": {
          "id": "file_fd85751ba7b0653c",
          "type": "file",
          "label": "repo_semantic/historical_timeline.py",
          "path": "repo_semantic/historical_timeline.py",
          "module": "repo_semantic.historical_timeline",
          "status": "observed",
          "confidence": 1.0
        },
        "resolution": "local",
        "status": "observed",
        "confidence": 1.0,
        "callee": null,
        "evidence": {
          "path": "repo_semantic/incremental.py",
          "line": 17,
          "end_line": 17,
          "source_hash": "6f24db1f386eb42763a397ff2f37b0f051242bac64dd43a4495f76147f63998a",
          "source_kind": "code"
        }
      }
    },
    {
      "kind": "call_added",
      "severity": "low",
      "message": "Call added: _injected_mutable_default → bucket.append",
      "basis": "normalized call relation",
      "payload": {
        "type": "calls",
        "source": {
          "id": "fn_6a8d8e6630758cc3",
          "type": "function",
          "label": "_injected_mutable_default",
          "symbol": "_injected_mutable_default",
          "path": "repo_semantic/incremental.py",
          "module": "repo_semantic.incremental",
          "status": "observed",
          "confidence": 1.0
        },
        "target": {
          "id": "boundary_3cc2220fa75698c9",
          "type": "boundary_call",
          "label": "bucket.append",
          "status": "unresolved",
          "confidence": 0.4
        },
        "resolution": "boundary",
        "status": "unresolved",
        "confidence": 0.4,
        "callee": "bucket.append",
        "evidence": {
          "path": "repo_semantic/incremental.py",
          "line": 21,
          "end_line": 21,
          "source_hash": "6f24db1f386eb42763a397ff2f37b0f051242bac64dd43a4495f76147f63998a",
          "source_kind": "code"
        }
      }
    },
    {
      "kind": "call_added",
      "severity": "low",
      "message": "Call added: _injected_bare_except → RuntimeError",
      "basis": "normalized call relation",
      "payload": {
        "type": "calls",
        "source": {
          "id": "fn_e5aa9374079897e1",
          "type": "function",
          "label": "_injected_bare_except",
          "symbol": "_injected_bare_except",
          "path": "repo_semantic/incremental.py",
          "module": "repo_semantic.incremental",
          "status": "observed",
          "confidence": 1.0
        },
        "target": {
          "id": "boundary_67cab1d4456600e4",
          "type": "boundary_call",
          "label": "RuntimeError",
          "status": "unresolved",
          "confidence": 0.4
        },
        "resolution": "boundary",
        "status": "unresolved",
        "confidence": 0.4,
        "callee": "RuntimeError",
        "evidence": {
          "path": "repo_semantic/incremental.py",
          "line": 25,
          "end_line": 25,
          "source_hash": "6f24db1f386eb42763a397ff2f37b0f051242bac64dd43a4495f76147f63998a",
          "source_kind": "code"
        }
      }
    }
  ],
  "epistemic_boundary": {
    "observed": [
      "per-file content hash change",
      "source-derived entity presence",
      "normalized import/call/state/effect relations",
      "detector findings"
    ],
    "strongly_inferred": [
      "motif membership",
      "bounded Impact Engine breadth change",
      "unique normalized-shape rename/move candidate"
    ],
    "unresolved": [
      "behavioral equivalence outside the analyzed static subset",
      "dynamic dispatch/reflection/native effects",
      "whether an added semantic relation changes user-visible behavior",
      "rename/move candidates when structural signatures are ambiguous"
    ]
  }
}

Epistemic boundary

Observed: normalized source-derived entities/relations and file content hashes.

Strongly inferred: motifs, bounded impact changes, conservative rename/move candidates.

Unresolved: runtime-only behavior, reflection/native code, and whether a semantic relation change alters user-visible behavior.