PBSOI Semantic Diff v0.9

Base: /tmp/pbsio_git_1i2r9j2z/base_snapshot
Target: /tmp/pbsio_git_1i2r9j2z/head_snapshot
2
Semantic events
0
Dependencies Δ
1
Calls Δ
0
State writers Δ
0
Effects Δ
0
Motifs Δ
0
Findings Δ
0
Exceptions Δ
1
Impact targets Δ

Semantic events

SeverityKindChangeBasis
lowimpact_breadth_changedReview breadth changed by +1: app.py::f4Impact Engine depth 3
lowcall_addedCall added: f4 → absnormalized call relation

Impact breadth changes

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

TargetΔ breadthBeforeAfterVector Δ
app.py::f4+101{"affected_motifs": 0, "boundary_touchpoints": 1, "data_sinks": 0, "direct_callees": 0, "direct_callers": 0, "effect_touchpoints": 0, "likely_tests": 0, "local_data_values": 0, "phi_nodes": 0, "review_files": 0, "state_coupled_functions": 0, "state_regions_read": 0, "state_regions_written": 0, "transitive_downstream": 0, "transitive_upstream": 0}

File content identity

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

FileBase SHATarget SHABytes Δ
app.py3b943a9a23cdb416ce9f73cb54f1+5

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": "/tmp/pbsio_git_1i2r9j2z/base_snapshot",
    "analyzer_version": "0.9.0",
    "metrics": {
      "loaded_files": 1,
      "nodes": 31,
      "edges": 40,
      "node_types": {
        "file": 1,
        "function": 10,
        "data_value": 10,
        "data_sink": 10
      },
      "edge_types": {
        "contains": 10,
        "defines": 10,
        "contains_data": 10,
        "returns_value": 10
      },
      "resolved_local_calls": 0,
      "boundary_calls": 0,
      "findings_by_category": {},
      "findings_by_severity": {},
      "motif_instances": 0,
      "motif_clusters": 1,
      "data_values": 10,
      "phi_nodes": 0,
      "data_edges": 20,
      "alias_edges": 0,
      "state_regions": 0,
      "state_reads": 0,
      "state_writes": 0,
      "module_binding_reads": 0,
      "exception_handlers": 0,
      "explicit_raises": 0,
      "unresolved_local_uses": 0,
      "warnings": 0
    }
  },
  "target": {
    "root": "/tmp/pbsio_git_1i2r9j2z/head_snapshot",
    "analyzer_version": "0.9.0",
    "metrics": {
      "loaded_files": 1,
      "nodes": 32,
      "edges": 41,
      "node_types": {
        "file": 1,
        "function": 10,
        "data_value": 10,
        "data_sink": 10,
        "boundary_call": 1
      },
      "edge_types": {
        "contains": 10,
        "defines": 10,
        "contains_data": 10,
        "returns_value": 10,
        "calls": 1
      },
      "resolved_local_calls": 0,
      "boundary_calls": 1,
      "findings_by_category": {},
      "findings_by_severity": {},
      "motif_instances": 0,
      "motif_clusters": 1,
      "data_values": 10,
      "phi_nodes": 0,
      "data_edges": 20,
      "alias_edges": 0,
      "state_regions": 0,
      "state_reads": 0,
      "state_writes": 0,
      "module_binding_reads": 0,
      "exception_handlers": 0,
      "explicit_raises": 0,
      "unresolved_local_uses": 0,
      "warnings": 0
    }
  },
  "summary": {
    "files_added": 0,
    "files_removed": 0,
    "files_modified": 1,
    "entities_added": 0,
    "entities_removed": 0,
    "dependencies_added": 0,
    "dependencies_removed": 0,
    "calls_added": 1,
    "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": 0,
    "findings_resolved": 0,
    "exception_structures_added": 0,
    "exception_structures_removed": 0,
    "impact_targets_changed": 1,
    "possible_renames_or_moves": 0,
    "semantic_events": 2
  },
  "changes": {
    "files": {
      "added": [],
      "removed": [],
      "modified": [
        {
          "path": "app.py",
          "base_sha256": "3b943a9a23cdb4561e4f1a474969040b1b75954e7e50a9283390e062db7463d8",
          "target_sha256": "16ce9f73cb54f1450da1ef9734374ca6d5fea5b93afa0cd5b93fef2a5e98902d",
          "base_bytes": 301,
          "target_bytes": 306
        }
      ]
    },
    "entities": {
      "added": [],
      "removed": []
    },
    "relations": {
      "calls": {
        "added": [
          {
            "type": "calls",
            "source": {
              "id": "fn_ed7e539cdf0e39ff",
              "type": "function",
              "label": "f4",
              "symbol": "f4",
              "path": "app.py",
              "module": "app",
              "status": "observed",
              "confidence": 1.0
            },
            "target": {
              "id": "boundary_d8bc055e3bb7e74f",
              "type": "boundary_call",
              "label": "abs",
              "status": "unresolved",
              "confidence": 0.4
            },
            "resolution": "boundary",
            "status": "unresolved",
            "confidence": 0.4,
            "callee": "abs",
            "evidence": {
              "path": "app.py",
              "line": 16,
              "end_line": 16,
              "source_hash": "2810151efab8a7f9caa9b54c89aad5c5e84584ff675698d70fe43601aafd2dae",
              "source_kind": "code"
            }
          }
        ],
        "removed": []
      },
      "effect": {
        "added": [],
        "removed": []
      },
      "imports": {
        "added": [],
        "removed": []
      },
      "reads_state": {
        "added": [],
        "removed": []
      },
      "writes_state": {
        "added": [],
        "removed": []
      }
    },
    "motifs": {
      "added": [],
      "removed": []
    },
    "findings": {
      "added": [],
      "resolved": []
    },
    "exceptions": {
      "added": [],
      "removed": []
    },
    "impact": {
      "changed": [
        {
          "id": "fn_ed7e539cdf0e39ff",
          "type": "function",
          "path": "app.py",
          "symbol": "f4",
          "depth": 3,
          "base_review_breadth": 0,
          "target_review_breadth": 1,
          "review_breadth_delta": 1,
          "vector_delta": {
            "affected_motifs": 0,
            "boundary_touchpoints": 1,
            "data_sinks": 0,
            "direct_callees": 0,
            "direct_callers": 0,
            "effect_touchpoints": 0,
            "likely_tests": 0,
            "local_data_values": 0,
            "phi_nodes": 0,
            "review_files": 0,
            "state_coupled_functions": 0,
            "state_regions_read": 0,
            "state_regions_written": 0,
            "transitive_downstream": 0,
            "transitive_upstream": 0
          },
          "base_vector": {
            "direct_callers": 0,
            "direct_callees": 0,
            "transitive_upstream": 0,
            "transitive_downstream": 0,
            "state_regions_read": 0,
            "state_regions_written": 0,
            "state_coupled_functions": 0,
            "boundary_touchpoints": 0,
            "effect_touchpoints": 0,
            "affected_motifs": 0,
            "review_files": 1,
            "local_data_values": 2,
            "phi_nodes": 0,
            "data_sinks": 1,
            "likely_tests": 0
          },
          "target_vector": {
            "direct_callers": 0,
            "direct_callees": 0,
            "transitive_upstream": 0,
            "transitive_downstream": 0,
            "state_regions_read": 0,
            "state_regions_written": 0,
            "state_coupled_functions": 0,
            "boundary_touchpoints": 1,
            "effect_touchpoints": 0,
            "affected_motifs": 0,
            "review_files": 1,
            "local_data_values": 2,
            "phi_nodes": 0,
            "data_sinks": 1,
            "likely_tests": 0
          }
        }
      ],
      "meta": {
        "evaluated": 10,
        "candidate_count": 10,
        "cap": 500,
        "truncated": false,
        "depth": 3
      }
    },
    "possible_renames_or_moves": []
  },
  "semantic_events": [
    {
      "kind": "impact_breadth_changed",
      "severity": "low",
      "message": "Review breadth changed by +1: app.py::f4",
      "basis": "Impact Engine depth 3",
      "payload": {
        "id": "fn_ed7e539cdf0e39ff",
        "type": "function",
        "path": "app.py",
        "symbol": "f4",
        "depth": 3,
        "base_review_breadth": 0,
        "target_review_breadth": 1,
        "review_breadth_delta": 1,
        "vector_delta": {
          "affected_motifs": 0,
          "boundary_touchpoints": 1,
          "data_sinks": 0,
          "direct_callees": 0,
          "direct_callers": 0,
          "effect_touchpoints": 0,
          "likely_tests": 0,
          "local_data_values": 0,
          "phi_nodes": 0,
          "review_files": 0,
          "state_coupled_functions": 0,
          "state_regions_read": 0,
          "state_regions_written": 0,
          "transitive_downstream": 0,
          "transitive_upstream": 0
        },
        "base_vector": {
          "direct_callers": 0,
          "direct_callees": 0,
          "transitive_upstream": 0,
          "transitive_downstream": 0,
          "state_regions_read": 0,
          "state_regions_written": 0,
          "state_coupled_functions": 0,
          "boundary_touchpoints": 0,
          "effect_touchpoints": 0,
          "affected_motifs": 0,
          "review_files": 1,
          "local_data_values": 2,
          "phi_nodes": 0,
          "data_sinks": 1,
          "likely_tests": 0
        },
        "target_vector": {
          "direct_callers": 0,
          "direct_callees": 0,
          "transitive_upstream": 0,
          "transitive_downstream": 0,
          "state_regions_read": 0,
          "state_regions_written": 0,
          "state_coupled_functions": 0,
          "boundary_touchpoints": 1,
          "effect_touchpoints": 0,
          "affected_motifs": 0,
          "review_files": 1,
          "local_data_values": 2,
          "phi_nodes": 0,
          "data_sinks": 1,
          "likely_tests": 0
        }
      }
    },
    {
      "kind": "call_added",
      "severity": "low",
      "message": "Call added: f4 → abs",
      "basis": "normalized call relation",
      "payload": {
        "type": "calls",
        "source": {
          "id": "fn_ed7e539cdf0e39ff",
          "type": "function",
          "label": "f4",
          "symbol": "f4",
          "path": "app.py",
          "module": "app",
          "status": "observed",
          "confidence": 1.0
        },
        "target": {
          "id": "boundary_d8bc055e3bb7e74f",
          "type": "boundary_call",
          "label": "abs",
          "status": "unresolved",
          "confidence": 0.4
        },
        "resolution": "boundary",
        "status": "unresolved",
        "confidence": 0.4,
        "callee": "abs",
        "evidence": {
          "path": "app.py",
          "line": 16,
          "end_line": 16,
          "source_hash": "2810151efab8a7f9caa9b54c89aad5c5e84584ff675698d70fe43601aafd2dae",
          "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.