7
Semantic events
0
Dependencies Δ
0
Calls Δ
1
State writers Δ
0
Effects Δ
1
Motifs Δ
1
Findings Δ
0
Exceptions Δ
3
Impact targets Δ
Semantic events
| Severity | Kind | Change | Basis |
|---|---|---|---|
| high | finding_added | Finding added: possibly_undefined_local at app.py::root | detector diff |
| medium | state_writer_added | State writer added: root → app:global:CACHE | writes_state relation |
| medium | motif_added | Motif added: read_modify_write at app.py::root | structural motif inference |
| low | state_reader_added | State reader added: root → app:global:CACHE | reads_state relation |
| low | impact_breadth_changed | Review breadth changed by +1: test_app.py::test_root | Impact Engine depth 3 |
| low | impact_breadth_changed | Review breadth changed by +1: app.py::root | Impact Engine depth 3 |
| low | impact_breadth_changed | Review breadth changed by +1: app.py::helper | Impact Engine depth 3 |
Impact breadth changes
Impact Δ is bounded review-scope change, not defect truth.
| Target | Δ breadth | Before | After | Vector Δ |
|---|---|---|---|---|
| test_app.py::test_root | +1 | 2 | 3 | {"affected_motifs": 1, "boundary_touchpoints": 0, "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} |
| app.py::root | +1 | 2 | 3 | {"affected_motifs": 1, "boundary_touchpoints": 0, "data_sinks": 0, "direct_callees": 0, "direct_callers": 0, "effect_touchpoints": 0, "likely_tests": 0, "local_data_values": 3, "phi_nodes": 1, "review_files": 0, "state_coupled_functions": 0, "state_regions_read": 1, "state_regions_written": 1, "transitive_downstream": 0, "transitive_upstream": 0} |
| app.py::helper | +1 | 2 | 3 | {"affected_motifs": 1, "boundary_touchpoints": 0, "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.
| File | Base SHA | Target SHA | Bytes Δ |
|---|---|---|---|
| app.py | 98f979337e5027 | 806edd292e6487 | +84 |
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_irbczkvt/base_snapshot",
"analyzer_version": "0.5.0",
"metrics": {
"loaded_files": 2,
"nodes": 9,
"edges": 12,
"node_types": {
"file": 2,
"function": 3,
"data_value": 2,
"data_sink": 2
},
"edge_types": {
"contains": 3,
"imports": 1,
"defines": 2,
"contains_data": 2,
"returns_value": 2,
"calls": 2
},
"resolved_local_calls": 2,
"boundary_calls": 0,
"findings_by_category": {},
"findings_by_severity": {},
"motif_instances": 0,
"motif_clusters": 1,
"data_values": 2,
"phi_nodes": 0,
"data_edges": 4,
"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_irbczkvt/head_snapshot",
"analyzer_version": "0.5.0",
"metrics": {
"loaded_files": 2,
"nodes": 14,
"edges": 20,
"node_types": {
"file": 2,
"function": 3,
"data_value": 3,
"data_sink": 2,
"control": 1,
"state_region": 1,
"data_phi": 1,
"data_undefined": 1
},
"edge_types": {
"contains": 3,
"imports": 1,
"defines": 4,
"contains_data": 2,
"returns_value": 2,
"controls": 1,
"writes_state": 1,
"reads_state": 1,
"guards": 1,
"phi_input": 2,
"calls": 2
},
"resolved_local_calls": 2,
"boundary_calls": 0,
"findings_by_category": {
"defect": 1
},
"findings_by_severity": {
"high": 1
},
"motif_instances": 1,
"motif_clusters": 0,
"data_values": 3,
"phi_nodes": 1,
"data_edges": 9,
"alias_edges": 0,
"state_regions": 1,
"state_reads": 1,
"state_writes": 1,
"module_binding_reads": 0,
"exception_handlers": 0,
"explicit_raises": 0,
"unresolved_local_uses": 1,
"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": 0,
"calls_removed": 0,
"state_readers_added": 1,
"state_readers_removed": 0,
"state_writers_added": 1,
"state_writers_removed": 0,
"effects_added": 0,
"effects_removed": 0,
"motifs_added": 1,
"motifs_removed": 0,
"findings_added": 1,
"findings_resolved": 0,
"exception_structures_added": 0,
"exception_structures_removed": 0,
"impact_targets_changed": 3,
"possible_renames_or_moves": 0,
"semantic_events": 7
},
"changes": {
"files": {
"added": [],
"removed": [],
"modified": [
{
"path": "app.py",
"base_sha256": "98f979337e50277dd6af4d7077c28dc9bc297a1610918f08ada1f3a77636e163",
"target_sha256": "806edd292e6487fe9dfcf1fa5e5cd0b988d2ba23b633bb80918b0cb331079aae",
"base_bytes": 67,
"target_bytes": 151
}
]
},
"entities": {
"added": [],
"removed": []
},
"relations": {
"calls": {
"added": [],
"removed": []
},
"effect": {
"added": [],
"removed": []
},
"imports": {
"added": [],
"removed": []
},
"reads_state": {
"added": [
{
"type": "reads_state",
"source": {
"id": "fn_4e3d7579479d3d25",
"type": "function",
"label": "root",
"symbol": "root",
"path": "app.py",
"module": "app",
"status": "observed",
"confidence": 1.0
},
"target": {
"id": "state_region_84ae93567ca74dff",
"type": "state_region",
"label": "app:global:CACHE",
"region_kind": "module_global",
"status": "observed",
"confidence": 0.95
},
"resolution": null,
"status": "observed",
"confidence": 0.95,
"callee": null,
"evidence": {
"path": "app.py",
"line": 10,
"end_line": 10,
"source_hash": "806edd292e6487fe9dfcf1fa5e5cd0b988d2ba23b633bb80918b0cb331079aae",
"source_kind": "code"
}
}
],
"removed": []
},
"writes_state": {
"added": [
{
"type": "writes_state",
"source": {
"id": "fn_4e3d7579479d3d25",
"type": "function",
"label": "root",
"symbol": "root",
"path": "app.py",
"module": "app",
"status": "observed",
"confidence": 1.0
},
"target": {
"id": "state_region_84ae93567ca74dff",
"type": "state_region",
"label": "app:global:CACHE",
"region_kind": "module_global",
"status": "observed",
"confidence": 0.95
},
"resolution": null,
"status": "observed",
"confidence": 0.95,
"callee": null,
"evidence": {
"path": "app.py",
"line": 8,
"end_line": 8,
"source_hash": "806edd292e6487fe9dfcf1fa5e5cd0b988d2ba23b633bb80918b0cb331079aae",
"source_kind": "code"
}
}
],
"removed": []
}
},
"motifs": {
"added": [
{
"id": "motif_instance_bcc099d6b4330aac",
"kind": "read_modify_write",
"node_id": "fn_4e3d7579479d3d25",
"path": "app.py",
"symbol": "root",
"confidence": 0.86,
"rule": "same function reads and writes the same state target",
"identity_basis": "structural_features",
"status": "strongly_inferred"
}
],
"removed": []
},
"findings": {
"added": [
{
"type": "possibly_undefined_local",
"category": "defect",
"severity": "high",
"path": "app.py",
"symbol": "root",
"line": 11,
"variable": "value",
"rule": "local_value_must_be_defined_on_all_reaching_paths",
"message": "Local variable 'value' may be undefined on at least one reaching control-flow path.",
"status": "violated"
}
],
"resolved": []
},
"exceptions": {
"added": [],
"removed": []
},
"impact": {
"changed": [
{
"id": "fn_ea0b7c39d8d78995",
"type": "function",
"path": "test_app.py",
"symbol": "test_root",
"depth": 3,
"base_review_breadth": 2,
"target_review_breadth": 3,
"review_breadth_delta": 1,
"vector_delta": {
"affected_motifs": 1,
"boundary_touchpoints": 0,
"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": 1,
"transitive_upstream": 0,
"transitive_downstream": 2,
"state_regions_read": 0,
"state_regions_written": 0,
"state_coupled_functions": 0,
"boundary_touchpoints": 0,
"effect_touchpoints": 0,
"affected_motifs": 0,
"review_files": 2,
"local_data_values": 0,
"phi_nodes": 0,
"data_sinks": 0,
"likely_tests": 0
},
"target_vector": {
"direct_callers": 0,
"direct_callees": 1,
"transitive_upstream": 0,
"transitive_downstream": 2,
"state_regions_read": 0,
"state_regions_written": 0,
"state_coupled_functions": 0,
"boundary_touchpoints": 0,
"effect_touchpoints": 0,
"affected_motifs": 1,
"review_files": 2,
"local_data_values": 0,
"phi_nodes": 0,
"data_sinks": 0,
"likely_tests": 0
}
},
{
"id": "fn_4e3d7579479d3d25",
"type": "function",
"path": "app.py",
"symbol": "root",
"depth": 3,
"base_review_breadth": 2,
"target_review_breadth": 3,
"review_breadth_delta": 1,
"vector_delta": {
"affected_motifs": 1,
"boundary_touchpoints": 0,
"data_sinks": 0,
"direct_callees": 0,
"direct_callers": 0,
"effect_touchpoints": 0,
"likely_tests": 0,
"local_data_values": 3,
"phi_nodes": 1,
"review_files": 0,
"state_coupled_functions": 0,
"state_regions_read": 1,
"state_regions_written": 1,
"transitive_downstream": 0,
"transitive_upstream": 0
},
"base_vector": {
"direct_callers": 1,
"direct_callees": 1,
"transitive_upstream": 1,
"transitive_downstream": 1,
"state_regions_read": 0,
"state_regions_written": 0,
"state_coupled_functions": 0,
"boundary_touchpoints": 0,
"effect_touchpoints": 0,
"affected_motifs": 0,
"review_files": 2,
"local_data_values": 2,
"phi_nodes": 0,
"data_sinks": 1,
"likely_tests": 1
},
"target_vector": {
"direct_callers": 1,
"direct_callees": 1,
"transitive_upstream": 1,
"transitive_downstream": 1,
"state_regions_read": 1,
"state_regions_written": 1,
"state_coupled_functions": 0,
"boundary_touchpoints": 0,
"effect_touchpoints": 0,
"affected_motifs": 1,
"review_files": 2,
"local_data_values": 5,
"phi_nodes": 1,
"data_sinks": 1,
"likely_tests": 1
}
},
{
"id": "fn_161e6877e31012b3",
"type": "function",
"path": "app.py",
"symbol": "helper",
"depth": 3,
"base_review_breadth": 2,
"target_review_breadth": 3,
"review_breadth_delta": 1,
"vector_delta": {
"affected_motifs": 1,
"boundary_touchpoints": 0,
"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": 1,
"direct_callees": 0,
"transitive_upstream": 2,
"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": 2,
"local_data_values": 2,
"phi_nodes": 0,
"data_sinks": 1,
"likely_tests": 1
},
"target_vector": {
"direct_callers": 1,
"direct_callees": 0,
"transitive_upstream": 2,
"transitive_downstream": 0,
"state_regions_read": 0,
"state_regions_written": 0,
"state_coupled_functions": 0,
"boundary_touchpoints": 0,
"effect_touchpoints": 0,
"affected_motifs": 1,
"review_files": 2,
"local_data_values": 2,
"phi_nodes": 0,
"data_sinks": 1,
"likely_tests": 1
}
}
],
"meta": {
"evaluated": 3,
"candidate_count": 3,
"cap": 500,
"truncated": false,
"depth": 3
}
},
"possible_renames_or_moves": []
},
"semantic_events": [
{
"kind": "finding_added",
"severity": "high",
"message": "Finding added: possibly_undefined_local at app.py::root",
"basis": "detector diff",
"payload": {
"type": "possibly_undefined_local",
"category": "defect",
"severity": "high",
"path": "app.py",
"symbol": "root",
"line": 11,
"variable": "value",
"rule": "local_value_must_be_defined_on_all_reaching_paths",
"message": "Local variable 'value' may be undefined on at least one reaching control-flow path.",
"status": "violated"
}
},
{
"kind": "state_writer_added",
"severity": "medium",
"message": "State writer added: root → app:global:CACHE",
"basis": "writes_state relation",
"payload": {
"type": "writes_state",
"source": {
"id": "fn_4e3d7579479d3d25",
"type": "function",
"label": "root",
"symbol": "root",
"path": "app.py",
"module": "app",
"status": "observed",
"confidence": 1.0
},
"target": {
"id": "state_region_84ae93567ca74dff",
"type": "state_region",
"label": "app:global:CACHE",
"region_kind": "module_global",
"status": "observed",
"confidence": 0.95
},
"resolution": null,
"status": "observed",
"confidence": 0.95,
"callee": null,
"evidence": {
"path": "app.py",
"line": 8,
"end_line": 8,
"source_hash": "806edd292e6487fe9dfcf1fa5e5cd0b988d2ba23b633bb80918b0cb331079aae",
"source_kind": "code"
}
}
},
{
"kind": "motif_added",
"severity": "medium",
"message": "Motif added: read_modify_write at app.py::root",
"basis": "structural motif inference",
"payload": {
"id": "motif_instance_bcc099d6b4330aac",
"kind": "read_modify_write",
"node_id": "fn_4e3d7579479d3d25",
"path": "app.py",
"symbol": "root",
"confidence": 0.86,
"rule": "same function reads and writes the same state target",
"identity_basis": "structural_features",
"status": "strongly_inferred"
}
},
{
"kind": "state_reader_added",
"severity": "low",
"message": "State reader added: root → app:global:CACHE",
"basis": "reads_state relation",
"payload": {
"type": "reads_state",
"source": {
"id": "fn_4e3d7579479d3d25",
"type": "function",
"label": "root",
"symbol": "root",
"path": "app.py",
"module": "app",
"status": "observed",
"confidence": 1.0
},
"target": {
"id": "state_region_84ae93567ca74dff",
"type": "state_region",
"label": "app:global:CACHE",
"region_kind": "module_global",
"status": "observed",
"confidence": 0.95
},
"resolution": null,
"status": "observed",
"confidence": 0.95,
"callee": null,
"evidence": {
"path": "app.py",
"line": 10,
"end_line": 10,
"source_hash": "806edd292e6487fe9dfcf1fa5e5cd0b988d2ba23b633bb80918b0cb331079aae",
"source_kind": "code"
}
}
},
{
"kind": "impact_breadth_changed",
"severity": "low",
"message": "Review breadth changed by +1: test_app.py::test_root",
"basis": "Impact Engine depth 3",
"payload": {
"id": "fn_ea0b7c39d8d78995",
"type": "function",
"path": "test_app.py",
"symbol": "test_root",
"depth": 3,
"base_review_breadth": 2,
"target_review_breadth": 3,
"review_breadth_delta": 1,
"vector_delta": {
"affected_motifs": 1,
"boundary_touchpoints": 0,
"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": 1,
"transitive_upstream": 0,
"transitive_downstream": 2,
"state_regions_read": 0,
"state_regions_written": 0,
"state_coupled_functions": 0,
"boundary_touchpoints": 0,
"effect_touchpoints": 0,
"affected_motifs": 0,
"review_files": 2,
"local_data_values": 0,
"phi_nodes": 0,
"data_sinks": 0,
"likely_tests": 0
},
"target_vector": {
"direct_callers": 0,
"direct_callees": 1,
"transitive_upstream": 0,
"transitive_downstream": 2,
"state_regions_read": 0,
"state_regions_written": 0,
"state_coupled_functions": 0,
"boundary_touchpoints": 0,
"effect_touchpoints": 0,
"affected_motifs": 1,
"review_files": 2,
"local_data_values": 0,
"phi_nodes": 0,
"data_sinks": 0,
"likely_tests": 0
}
}
},
{
"kind": "impact_breadth_changed",
"severity": "low",
"message": "Review breadth changed by +1: app.py::root",
"basis": "Impact Engine depth 3",
"payload": {
"id": "fn_4e3d7579479d3d25",
"type": "function",
"path": "app.py",
"symbol": "root",
"depth": 3,
"base_review_breadth": 2,
"target_review_breadth": 3,
"review_breadth_delta": 1,
"vector_delta": {
"affected_motifs": 1,
"boundary_touchpoints": 0,
"data_sinks": 0,
"direct_callees": 0,
"direct_callers": 0,
"effect_touchpoints": 0,
"likely_tests": 0,
"local_data_values": 3,
"phi_nodes": 1,
"review_files": 0,
"state_coupled_functions": 0,
"state_regions_read": 1,
"state_regions_written": 1,
"transitive_downstream": 0,
"transitive_upstream": 0
},
"base_vector": {
"direct_callers": 1,
"direct_callees": 1,
"transitive_upstream": 1,
"transitive_downstream": 1,
"state_regions_read": 0,
"state_regions_written": 0,
"state_coupled_functions": 0,
"boundary_touchpoints": 0,
"effect_touchpoints": 0,
"affected_motifs": 0,
"review_files": 2,
"local_data_values": 2,
"phi_nodes": 0,
"data_sinks": 1,
"likely_tests": 1
},
"target_vector": {
"direct_callers": 1,
"direct_callees": 1,
"transitive_upstream": 1,
"transitive_downstream": 1,
"state_regions_read": 1,
"state_regions_written": 1,
"state_coupled_functions": 0,
"boundary_touchpoints": 0,
"effect_touchpoints": 0,
"affected_motifs": 1,
"review_files": 2,
"local_data_values": 5,
"phi_nodes": 1,
"data_sinks": 1,
"likely_tests": 1
}
}
},
{
"kind": "impact_breadth_changed",
"severity": "low",
"message": "Review breadth changed by +1: app.py::helper",
"basis": "Impact Engine depth 3",
"payload": {
"id": "fn_161e6877e31012b3",
"type": "function",
"path": "app.py",
"symbol": "helper",
"depth": 3,
"base_review_breadth": 2,
"target_review_breadth": 3,
"review_breadth_delta": 1,
"vector_delta": {
"affected_motifs": 1,
"boundary_touchpoints": 0,
"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": 1,
"direct_callees": 0,
"transitive_upstream": 2,
"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": 2,
"local_data_values": 2,
"phi_nodes": 0,
"data_sinks": 1,
"likely_tests": 1
},
"target_vector": {
"direct_callers": 1,
"direct_callees": 0,
"transitive_upstream": 2,
"transitive_downstream": 0,
"state_regions_read": 0,
"state_regions_written": 0,
"state_coupled_functions": 0,
"boundary_touchpoints": 0,
"effect_touchpoints": 0,
"affected_motifs": 1,
"review_files": 2,
"local_data_values": 2,
"phi_nodes": 0,
"data_sinks": 1,
"likely_tests": 1
}
}
}
],
"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.