2
Semantic events
0
Dependencies Δ
1
Calls Δ
0
State writers Δ
0
Effects Δ
0
Motifs Δ
0
Findings Δ
0
Exceptions Δ
1
Impact targets Δ
Semantic events
| Severity | Kind | Change | Basis |
|---|---|---|---|
| low | impact_breadth_changed | Review breadth changed by +1: app.py::b | Impact Engine depth 3 |
| low | call_added | Call added: b → abs | normalized call relation |
Impact breadth changes
Impact Δ is bounded review-scope change, not defect truth.
| Target | Δ breadth | Before | After | Vector Δ |
|---|---|---|---|---|
| app.py::b | +1 | 0 | 1 | {"affected_motifs": 0, "boundary_touchpoints": 1, "data_sinks": 0, "direct_callees": 0, "direct_callers": 0, "effect_touchpoints": 0, "likely_tests": 0, "local_data_values": 1, "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.
| File | Base SHA | Target SHA | Bytes Δ |
|---|---|---|---|
| app.py | aecdcf6f5ef9c7 | 6fcb76ea57d6e1 | +11 |
Possible rename / move candidates
Only unique exact normalized function-shape matches are shown; these remain inferred candidates.
| From | To | Confidence | Basis |
|---|---|---|---|
| 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_9ci7d656/base_snapshot",
"analyzer_version": "0.9.0",
"metrics": {
"loaded_files": 1,
"nodes": 13,
"edges": 16,
"node_types": {
"file": 1,
"function": 4,
"data_value": 4,
"data_sink": 4
},
"edge_types": {
"contains": 4,
"defines": 4,
"contains_data": 4,
"returns_value": 4
},
"resolved_local_calls": 0,
"boundary_calls": 0,
"findings_by_category": {},
"findings_by_severity": {},
"motif_instances": 0,
"motif_clusters": 1,
"data_values": 4,
"phi_nodes": 0,
"data_edges": 8,
"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_9ci7d656/head_snapshot",
"analyzer_version": "0.9.0",
"metrics": {
"loaded_files": 1,
"nodes": 15,
"edges": 19,
"node_types": {
"file": 1,
"function": 4,
"data_value": 5,
"data_sink": 4,
"boundary_call": 1
},
"edge_types": {
"contains": 4,
"defines": 5,
"contains_data": 4,
"returns_value": 4,
"flows_to": 1,
"calls": 1
},
"resolved_local_calls": 0,
"boundary_calls": 1,
"findings_by_category": {},
"findings_by_severity": {},
"motif_instances": 0,
"motif_clusters": 1,
"data_values": 5,
"phi_nodes": 0,
"data_edges": 10,
"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": "aecdcf6f5ef9c7cd70a38fec4d6af3e7cce0d403422b1843236d20c53cb8fa55",
"target_sha256": "6fcb76ea57d6e1a8a83b6e57e19c812ea7987aa83cea5fc938e57e161f0a4fda",
"base_bytes": 111,
"target_bytes": 122
}
]
},
"entities": {
"added": [],
"removed": []
},
"relations": {
"calls": {
"added": [
{
"type": "calls",
"source": {
"id": "fn_33cf649322609c89",
"type": "function",
"label": "b",
"symbol": "b",
"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": 5,
"end_line": 5,
"source_hash": "8236477aa953e6eb8a98d1c42a170aef64b2e32e088f54226283f7483c8a73a1",
"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_33cf649322609c89",
"type": "function",
"path": "app.py",
"symbol": "b",
"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": 1,
"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": 3,
"phi_nodes": 0,
"data_sinks": 1,
"likely_tests": 0
}
}
],
"meta": {
"evaluated": 4,
"candidate_count": 4,
"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::b",
"basis": "Impact Engine depth 3",
"payload": {
"id": "fn_33cf649322609c89",
"type": "function",
"path": "app.py",
"symbol": "b",
"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": 1,
"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": 3,
"phi_nodes": 0,
"data_sinks": 1,
"likely_tests": 0
}
}
},
{
"kind": "call_added",
"severity": "low",
"message": "Call added: b → abs",
"basis": "normalized call relation",
"payload": {
"type": "calls",
"source": {
"id": "fn_33cf649322609c89",
"type": "function",
"label": "b",
"symbol": "b",
"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": 5,
"end_line": 5,
"source_hash": "8236477aa953e6eb8a98d1c42a170aef64b2e32e088f54226283f7483c8a73a1",
"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.